A szuperszámítógép technológiai trendje


Kacsuk Péter <kacsuk@sztaki.hu>

MTA SZTAKI



  1. Bevezetés


Számos olyan tudományos és műszaki probléma létezik, melyek megoldásához a szokásos számítógépek, PC-k, munkaállomások, de még a szerverek sem elegendően gyorsak, hogy ésszerű idő alatt le tudják futtatni a szükséges algoritmusokat. Ez a probléma természetesen nem mostanság jelentkezett, így volt ez már a 70-es évektől és ennek megfelelően azóta intenzív kutatás és fejlesztés folyik arra nézve, hogy az adott kor műszaki színvonalán, hogyan lehet a leggyorsabb számítógépet megépíteni oly módon, hogy a számítógépen belül egyszerre több processzort kapcsolnak össze nagysebességű kapcsolók segítségével. Ezeket a kiemelkedő sebességű számítógépeket nevezzük szuperszámítógépeknek. A tudomány és technológia fejlődésével szerepük egyre nő, mert az egyre pontosabb tudományos és műszaki modellek egyre nagyobb számítási sebességet igényelnek. Az igények terén ma már ott tartunk, hogy a legnagyobb, több teraflop sebességű szuperszámítógépek sem képesek egyedileg kielégíteni a felmerült igényeket. Ezért a 90-es évek közepétől amerikai kutatók a szuperszámítógépekből összekötött metaszámítógépek vagy más néven Grid rendszerek létrehozásán dolgoznak.


Az utóbbi években Magyarországon is egyre nőtt az igény a hazai kutatók körében egy ilyen kiemelkedő sebességű szuperszámítógép iránt. A 2000. év hozta az első áttörést hazánkban ezen a területen. Az MTA SZTAKI és az ELTE szinte egyidőben jelentette be közel szuperszámítógép teljesítményt nyújtó klaszterének üzembehelyezését, majd a végső áttörést az NIIF Sun HPC 10000 szuperszámítógépének átadása jelentette 2001 márciusában. Mire ez a cikk megjelenik a Compaq Magyarország is üzembehelyez két kisebb teljesítményű, klaszter típusú szuperszámítógépet az ELTE ill. a BME számítógépközpontjában.


Noha szuperszámítógépekkel ezidáig a magyar kutatók nem nagyon voltak elkényeztetve mégis jelentős eredményeket értek el mind a szuperszámítógép architektúrák fejlesztésében, mind a szuperszámítógépes szoftverfejlesztési technológia területén. Az ELTE munkatársai kifejlesztették az un. "Szegény ember szuperszámítógépét" [1], amely lehetőséget ad a kis költségvetésű intézmények számára is a szuperszámítógépek építésére és alkalmazására. A SZTAKI munkatársai kidolgozták a P-GRADE grafikus programfejlesztő rendszert [2], melynek segítségével a párhuzamos programok fejlesztésének minden fontos lépése egységes, magasszintű, grafikus környezetben végezhető el.


A Grid kutatások első lépései is megtörténtek hazánkban. A SZTAKI alapító tagja volt a European Grid Forumnak és vezető szerepet játszott az első európai tesztbed kidolgozásában, amit a 2000. évi dallasi Supercomputing konferencián mutattak be. A SZTAKI munkatársai aktívan dolgoznak a legnagyobb európai Grid projektben, a CERN által vezetett DataGrid projektben. 2000 szeptemberében elkezdődött az első hazai Grid projekt is, amelyben négy hazai szervezet vesz részt.


A jelen cikk célja, hogy röviden áttekintse a szuperszámítógépes technológia fejlődési trendjeit és ehhez kapcsolódóan bemutassa a magyarországi helyzetet.


  1. Szuperszámítógép technológia és fejlődési trendjei


A szuperszámítógépek a vektorprocesszorok megjelenésével kezdték meg térhódításukat a 70-es években. Jelentőségük a 90-es évekre annyira megnőtt, hogy a világ mindenkori 500 leggyorsabb számítógépét az un. top500-as listán folyamatosan nyilvántartják [3]. Ezt a listát negyedévenként aktualizálják és ennek alapján lehet a legpontosabban felmérni a szuperszámítógépek fejlődési trendjét. Itt kell megjegyezni, hogy magyarországi szuperszámítógép először 2001 első negyedévében került fel erre a listára, amikor az NIIF Irodában telepítették a 60 GFlop teljesítményű Sun HPC 10000 számítógépet, amely a 462. helyet foglalja el a listán. A top500-as listát vizsgálva megállapíthatjuk, hogy a listán lévő szuperszámítógépek felépítésük alapján az alábbi négy fő osztályba sorolhatók:


  1. Vektorprocesszorok

  2. Szimmetrikus multiprocesszorok

  3. Masszívan párhuzamos processzorok (MPP)

  4. Klaszterek


A vektorprocesszorok a tudományos számításokban leggyakrabban használt adatszerkezetek, a tömbök gyors feldolgozására lettek optimalizálva. Mivel az 1-dimenziós tömb neve vektor, ezért ezeket a szuperszámítógépeket vektorprocesszoroknak nevezik. Előnyük, hogy a tömbműveleteket valóban rendkívül gyorsan képesek végrehajtani és ugyanakkor programozásuk nem tér el a szokásos számítógépek programozásától. Úgynevezett vektorizáló fordítóprogramokat alkalmaznak, amelyek a programozó segítsége nélkül képesek felismerni az optimalizálható és gyorsítható műveleteket. Hátrányuk, hogy speciális processzorokat alkalmaznak, melyek tervezési és fejlesztési költsége rendkívül magas, ugyanakkor csak ezekben a gépekben alkalmazhatók. Az összes többi szuperszámítógép típus a szokásos mikroprocesszorokból építkezik, ezért ezek fajlagos költsége sokkal kisebb, mint a vektorprocesszorokké. Így a vektorprocesszorok rendkívül drágák a többi típushoz hasonlítva és ennek következtében népszerűségük rohamosan csökkent az elmúlt évtizedben, sőt az évtized végére gyakorlatilag eltüntek a top500-as listáról.


A következő család a szimmetrikus multiprocesszorok. Ezek lényege, hogy a memóriát minden processzor közösen használja, ezért szokták ezeket közös memóriás gépeknek is nevezni [4]. Ez a tulajdonságuk bizonyos szempontból előnyt, más szempontból hátrányt jelent. Előnyös, hogy a programozónak nem kell törödnie a processzek és processzorok összerendelésével, hiszen a közös memóriából bármely processzor bármely processzt elérhet és futtathat. Hasonlóan az adatok elhelyezése sem okoz külön fáradtságot a programozónak. A folyamatok kommunikációja az adatok tényleges mozgatása nélkül történhet a közös memóriában, ami jelentős előny az MPP és klaszteres gépekhez képest. A közös memórián keresztül történő kommunikáció azonban általános esetben olyan szinkronizációt igényel a processzek között, aminek kezelése már a programozó feladata. A szimmetrikus multiprocesszorok további hátránya, hogy a közös memória, mint erőforrás szűk keresztmetszetté válik egy bizonyos processzorszám felett (tipikusan 32-64) és ezért bővíthetőségük erősen korlátozott. Ez az oka annak, hogy a szimmetrikus multiprocesszorok lassan kiszorulóban vannak a top500-as listáról, ill. csak úgy tudnak megkapaszkodni, hogy a klaszter technológia segítségével szimmetrikus multiprocesszorokból egyszerre több van klaszterbe kapcsolva (ld. az NIIF Iroda új Sun HPC 10000 gépét).


A szimmetrikus multiprocesszorokkal ellentétben az MPP architektúrákban a memória fizikailag szét van osztva a processzorok között és így nagymértékben bővíthetők. A logikai struktúrát tekintve két fő változatukat alkalmazzák.


  1. elosztott közös memóriás gépek

  2. üzenetküldésen alapuló gépek


Az elosztott közös memóriás gépek a programozó szempontjából logikailag úgy viselkednek, mint a szimmetrikus multiprocesszorok, azaz a memória címtér egységesen, szimmetrikusan látszik minden processzor számára. Az üzenetküldésen alapuló gépek esetében azonban a memória címtere is osztott azaz egy processzor csak a fizikailag hozzákötött memóriát képes elérni. Ha más processzor memóriájának tartalmára van szüksége, akkor ezt processzek közötti üzenetek küldésével lehet elérni. Ez azt eredményezi, hogy a processzek és adatok kiosztása a processzorok memóriájában kritikus és ezt a legtöbb esetben a programozónak kell elvégezni. Ezért az ilyen gépek programozása bonyolúltabb, mint a szimmetrikus multiprocesszoroké. Ugyanakkor az elosztott közös memóriás MPP gépek programozása is bonyolúltabb, mint a szimmetrikus multiprocesszoroké, mivel itt a gyorsítómemória (cache) nem optimális kezelése okozhat teljesítményvesztést.


Az üzenetküldésen alapuló MPP gépek osztályában magyar fejlesztési eredménnyel is dicsekedhetünk. Az ELTE munkatársai dolgozták ki az un. "Szegény ember szuperszámítógépét" [1], aminek fő jellegzetessége, hogy szokványos PC processzorkártyák vannak összekötve háromdimenziós térrács topológiában egy speciális, általuk tervezett kommunikációs egység segítségével. Az így kialakított szuperszámítógép különösen alkalmas térrács jellegű problémák megoldására. Az [1] cikk szerint 32 PC-t kötöttek össze 2x4x4-es elrendezésben. Az összekötött PC-kben 450 MHz-es AMD K6-II processzorokat alkalmaztak 128 MB memóriával és 2.1 GB diszkkel.


Logikai szempontból a dedikált klaszterek és az üzenetküldésen alapuló MPP gépek nem különböznek. Felépítésükben eltérés, hogy míg az MPP gépek speciális belső kommunikációs hálózatot és kapcsolókat alkalmaznak, addig a klaszterek külső LAN hálózatokat és standard kapcsolókat használnak. Így fajlagos költségük tovább csökken az előző típusokhoz képest. Ennek megfelelően 1998 óta, amikor a LAN technológia elég fejlett és gyors lett (100 Mbs Ethernet, 1Gbs Ethernet, Mirynet megjelenése) a klaszterek egyre nagyobb szeletet hasítanak ki a top500-as listából.


A szuperszámítógépek fejlődési trendje tehát egyre inkább a klaszterek alkalmazása és terjedése irányába mutat. Ugyanakkor az igényeket még ezek a klaszterek sem képesek kielégíteni. Ezért 1995 óta intenzív kutatás folyik abban az irányban, hogyan lehet távolsági hálózattal összekötött, egymástól akár több ezer km-re lévő, egymástól lényegesen különböző szuperszámítógépeket és klasztereket úgy használni, mintha egyetlen szuperszámítógép alkotórészei lennének. Ez azt jelenti, hogy ezeken az un. metaszámítógépeken éppúgy lehetne párhuzamos programokat futtatni, mint egyetlen szuperszámítógép processzorai között. Az ilyen metaszámítógépek további általánosításaként jött létre az un. Grid rendszer fogalma, amelyben már tetszőleges számítógépek és erőforrások vannak együttesen használva, mintha egyetlen számítógép részei lennének. A Grid rendszerek megjelenése új horizontot nyított a hálózatok alkalmazásában. Kiteljesedésüktől azt várják, hogy olyan szerepet fognak játszani az információfeldolgozás terén, mint a Web játszik az információ elérése terén és ennek megfelelően társadalmi hatása legalább akkora lesz.



  1. Szuperszámítógépek programozása és a P-GRADE fejlesztőrendszer


Az előző fejezetben említettük, hogy a vektorprocesszorok kivételével a többi a szuperszámítógép típus programozása speciális tudást és speciális programozási ismereteket igényel általános esetben. (Ha a programozó megelégszik a ciklusok párhuzamosításával, akkor ezt sok esetben a modern fordítók már elvégzik a programozó helyett.) Ennek megfelelően speciális programozási nyelveket, kommunikációs könyvtárakat, párhuzamosított matematikai könyvtárakat, speciális debuggereket, monitorokat és teljesítményanalizáló eszközöket kell alkalmazni a programfejlesztés különböző fázisaiban.


A szimmetrikus multiprocesszorok és az elosztott közös memóriás MPP gépek programozására vezették be az OpenMP könyvtárat, melynek segítségével egy szekvenciális főprogram párhuzamosan futtatható végrehajtási szálakra (threads) bontható és az ezek közötti kommunikáció és szinkronizáció definiálható.


Az üzenetküldésen alapuló MPP gépek és a klaszterek programozására a PVM (Parallel Virtual Machine) [5] és MPI (Message Passing Interface) [6] kommunikációs könyvtárakat alkalmazzák. Ezek általánosan elfogadott standard könyvtárak. Alkalmazásuk biztosítja, hogy a párhuzamos programok hordozhatók lesznek a különböző gyártók szuperszámítógépei között. Ugyanakkor hívásaik rendkívül alacsonyszintű programozáshoz vezetnek és sok hibalehetőséget tartalmaznak. Röviden összefoglalva a párhuzamos programozás assembly szintjének tekinthetők. Mivel a párhuzamos programozás lényegesen nehezebb, mint a szekvenciális programozás ezért elfogadhatatlan, hogy ezt a bonyolúlt feladatot assembly szinten kelljen elvégezni.


Ez a felismerés vezette az MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratóriumát, hogy kifejlesszenek egy olyan párhuzamos programok készítésére szolgáló programozási környezetet (P-GRADE), amely:


  1. A párhuzamos programok fejlesztésének minden lépését egységes grafikus felhasználói felület segítségével támogatja [2].

  2. A programozás C, C++ vagy FORTRAN nyelven végezhető. A grafika a párhuzamos viselkedés és processzek közötti kommunikáció leírására szolgál. Eltakarja az alacsonyszintű PVM és MPI hívásokat. Ezeket a fordítóprogram automatikusan és ellenőrzött módon generálja a grafikus leírás alapján.

  3. Lehetővé teszi meglévő szekvenciális programok gyors párhuzamosítását, adaptálását szuperszámítógépekre.

  4. Biztosítja korábban kifejlesztett szekvenciális könyvtárak alkalmazhatóságát párhuzamos programokon belül.

  5. Integrált és grafikus debuggert (DIWIDE) [7], monitort (GRM) [8] és teljesítményanalizáló eszközt (PROVE) [9] biztosít.

  6. A PVM-re és MPI-ra fordítás biztósítja a rendszer nagy mértékű hordozhatóságát. Így a P-GRADE eddig 3 földrész 12 országában a következő párhuzamos platformokon lett installálva:

Munkaállomás klaszterek:

Szuperszámítógépek:



  1. Szuperszámítógépek alkalmazása és elterjedtsége


A top500-as lista alapján a szuperszámítógépeket elsősorban a kutatóintézetek és egyetemek használták a 90-es évek elején, majd fokozatosan elterjedt az iparban és az ezredfordulóra már a top500 gépeinek több mint 50%-a volt ipari alkalmazásban. A szuperszámítógépeket számos fontos kutatási területen alkalmazzák elsősorban modellezésre, így például a csillagászatban, földtudományokban, meterológiában, magfizikában, gazdasági modellekben, stb. Emellett fontos szerepet játszik a vegyészetben, agykutatásban, génkutatásban és általában az orvostudományban. Az ipari alkalmazások közül ki kell emelni a járműtervezést, ahol ma már mind a motorok tervezése, mind a formatervezéshez szükséges aerodinamikai modellezések, mind az ütközés- és törésmodellezés elképzelhetetlen szuperszámítógépek nélkül.


A fejlett országokban már minden komolyabb egyetem saját szuperszámítógép központtal rendelkezik, országos központok támogatják a nemzeti kutatási programokat és az iparban is jelentős számú szuperszámítógép van alkalmazva. Ezekben az országokban a nagy nemzeti projektek már túlléptek a szuperszámítógépeken, helyettük az azok összekapcsolására irányuló Grid kutatást és infrastruktúra kiépítését támogatják (pl. UK e-science program: 118mŁ 3 évre).


A szuperszámítógépes kultúra magyarországi elterjedtsége nemzetközi összehasonlításban rendkívül alacsony szintű. Elszigetelt kutatási és alkalmazási projektek léteznek, de hiányzik egy egységes stratégia, aminek alapján ezek a kutatások egymást erősíthetnék. Jellemző módon a kutatók egy része külföldre jár megoldani a szuperszámítógépet igénylő feladatait. Más részük idehaza PC-t vagy munkaállomást használ és nem képes megoldani feladatát szuperszámítógép hiányában.


1998-ban az OM számára készült tanulmány a szuperszámítógépes rendszerek alkalmazásának hazai igényeiről az oktatásban és a kutatásban. 1999-ben az OMFB rendelt hasonló tanulmányt, de ebben a vizsgálódás tárgya a hazai ipar volt [10]. Végül 2000-ben az NIIF Műszaki Tanácsa számára készült tanulmány a kutatási igényekről. Mindezek részletesen és számszerűen bizonyították, hogy a szuperszámítógépes technológia alkalmazására komoly igény van Magyarországon is (hasonlóan a világ fejlett országaihoz), de addig ez a kultúra nem tud kialakulni, amíg legalább egy, igazán nagyteljesítményű, szuperszámítógép nem áll rendelkezésre az ország kutatói és oktatói számára. Ugyanakkor ennek a kulturának a hiánya rohamosan növeli elmaradásunkat a fejlett országok kutatói potenciáljától és hosszú távon számos tudományterületen a teljes leszakadáshoz, ill. a magyar kutatók elvándorlásához vezethet.


Ehhez a helyzethez képest pozitív elmozdulás következett be 2000 márciusától, amikor az ELTE és az MTA SZTAKI szinte egyidőben helyezte üzembe szuperszámítógép teljesítményű klaszterét. További előrelépést jelentett 2000 szeptembere, amikor a NIIF Program Műszaki Tanácsa kiírta az első magyar szuperszámítógépes tendert, amit aztán a Sun nyert el 96 processzoros, 60 GFlopos HPC 10000 gépével. Ugyancsak ebben a hónapban kezdődött el az első magyar Grid projekt, melyben az MTA SZTAKI már említett klasztere és a BME két klasztere lesz összekötve a Globus [11] és Condor [12] rendszerek segítségével. Végezetül 2001 márciusa jelenti a végső áttörést, amikor a NIIF Iroda szuperszámítógép központját megnyítják, ill. a Compaq Magyarország Kft. átad két kisebb teljesítményű szuperszámítógépet az ELTE és a BME számítógép központjában.


Ezek az események arra indították az NIIF Program Műszaki Tanácsát, hogy beindítson egy kétéves szuperszámítógép projektet, melynek célja a szuperszámítógépes kultúra meghonosítása és elterjesztése az országban. A projekt kiemelt feladata, hogy minél több hazai kutatási projekt kapjon gépidőt és informatikai támogatást az NIIF Iroda szuperszámítógépén. Noha a szuperszámítógép projekt alapvetően az NIIF Iroda Sun HPC 10000 szuperszámítógépére kíván támaszkodni, hosszú távon feladatának tekinti, az ország nemrég átadott egyéb szuperszámítógép teljesítményű gépeinek és klasztereinek összekapcsolását is és ezzel a magyar Grid rendszer kiépítésének elindítását. Ez egy olyan kezdeményezés, melynek sikere hazánkat az informatikai kutatások élvonalába emelné és egyúttal a többi kutatási terület számára világszinvonalú infrastrukturát biztosítana.



  1. Konklúzió: egy optimista jövőkép


Az NIIF Iroda szuperszámítógépének üzembehelyezésével és az ehhez kapcsolódó szuperszámítógép projekt elindítításával egy új korszak kezdődött a hazai informatikában. Olyan új technológia nyilik meg a kutatók széles tömege számára, amely kutatásaiknak új távlatokat biztosít lehetővé téve, hogy korábban elképzelhetetlenül komplex modellekkel is képesek legyenek dolgozni.


A szuperszámítógép projekt eredményeképpen remélhetőleg két év múlva számos szuperszámítógépet alkalmazó kutatási projekt fog működni országszerte. Jelentősen megnő azon kutatók száma, akik értik és tudják használni a szuperszámítógépeket. Az országban működő szuperszámítógépek és klaszterek nem elszigetelten működnek majd, hanem szoros szövetségben és az akadémiai hálózatnak köszönhetően fizikailag is össze lesznek kötve, lehetővé téve, hogy egy országos Grid rendszer jöjjön létre, melyben az erőforrásokat dinamikusan, az igények szerint lehet átcsoportosítani az ország különböző pontjai és projektjei között.


Referenciák


[1] F.Csikor, Z.Fodor, P.Hegedüs, S.D.Katz, A.Piróth, V.Horváth: “The Poor Man's Supercomputer”, Proc. of DAPSYS’2000, Kluwer Academic Publisher, pp.151-154, 2000


[2] P. Kacsuk, G. Dózsa, T. Fadgyas and R. Lovas: ”GRADE: a Graphical Programming Environment for Multicomputers”, Journal of Computers and Artificial Intelligence, Slovak Academy of Sciences, Vol. 17, No. 5, pp. 417-427, 1998


[3] http://www.top500.org/


[4] Sima D., Fountain T, Kacsuk P.: ”Korszerű számítógép-architektúrák tervezésitér megközelítésben” SZAK Kiadó, 809o., 1998


[5] http://www.epm.ornl.gov/pvm/pvm_home.html


[6] W. Gropp, E. Lusk and A. Skjellum: ”Using MPI Portable Parallel Programming with the Message-Passing Interface” The MIT Press, pp. 299, 1994


[7] P.Kacsuk: ”Systematic Macrostep Debugging of Message Passing Parallel Programs”, Journal of Future Generation Computer Systems, Vol. 16, No. 6, pp. 609-624, 2000


[8] N. Podhorszki and P. Kacsuk: ”Design and Implementation of a Distributed Monitor for Semi-on-line Monitoring of VisualMP Applications”, In: Distributed and Parallel Systems, From Instruction Parallelism to Cluster Computing, Eds.: P. Kacsuk and G. Kotsis, Cluwer Academic Publishers, pp. 23-32, 2000


[9] P. Kacsuk: ”Performance Visualisation in the GRADE Parallel Programming Environment”, Proc. of the Fourth International Conference/Exhibition on High Performance Computing in Asia-Pacific Region (HPC’Asia 2000), Peking. pp. 446-450, 2000


[10] Forrai Sándor, Kacsuk Péter, Telbisz Ferenc és Radnóti Gábor: ”Ipari Szuperszámítógép-központ megvalósíthatósága Magyarországon”, OMFB Tanulmány, 1999, http://www.lpds.sztaki.hu/scc/


[11] http://www.globus.org/


[12] http://www.cs.wisc.edu/condor/