1. Magyar Szuperszámítógép Grid projekt


Kacsuk Péter

MTA SZTAKI / NIIF Iroda

kacsuk@sztaki.hu

www.lpds.sztaki.hu


    1. Elõzmények

A Grid rendszerek kutatása rohamosan növekszik mind Európában, mind az USÁ-ban, hiszen a Grid jelentõsége a Webéhez hasonlítható, sõt annál lényegesen átfogóbb szolgáltatások megvalósíthatóságát fogja eredményezni. A Grid technológia kutatása Magyarországon is elkezdõdött. 2000-ben két Grid témájú projektpályázat lett benyújtva az IKTA keretében, melyek közül az elsõ még 2000 szeptemberében elkezdõdött (NI-2000/08 projekt [1]), míg a második (DemoGrid) 2001 júliusában indult. Az elsõ célja a Globus [2] és Condor [3] Grid middleware koncepciók tanulmányozása, kísérleti kipróbálása és rájuk alapozva egy hazai Grid szolgáltatás kidolgozása volt. Az elsõ projekt eddigi tapasztalatai alapján elmondható, hogy ezek a rendszerek jelen formájukban alapvetõen csak szekvenciális programok (jobok) indítását és futtatását támogatják a Gridben. A Condor-Globus rendszer csak a Master-worker jellegû párhuzamos PVM alkalmazások futtatását teszi lehetõvé, általános PVM és MPI programok Grid-szerû futtatását nem biztosítja.

A második magyar Grid projekt (DemoGrid) a CERN által vezetett DataGrid [4] és LHC Grid projektek hazai megfelelõjeként elsõsorban a nagy adatmennyiségek Gridben történõ feldolgozásának támogatására, ill. különbözõ, Grid alkalmazások kidolgozásának támogatására koncentrál. A magyaroszági projektek kapcsolódásait egymáshoz és nemzetközi projektekhez az 1. ábra mutatja. A NI-2000/08 projekt Globusra vonatkozó eredményeit mind a DemoGrid, mind a most leírandó SuperGrid projekt hasznosítani fogja. Emellett a SuperGrid projekt erõsen kíván építeni a NI-2000/08 projektben elért Condorhoz kapcsolódó eredményekre is.

A nemzetközi és magyar Grid kutatásokkal szinte egyidõben megjelentek Magyarországon szuperszámítógépek [5] és szuperszámítógép teljesítményû klaszterek [6], amelyek Grid jellegû összekötése és használata jelentõsen megnövelné a magyar szuperszámítógép kapacitást. A fenti elõzmények felvázolása után a SuperGrid projektben megoldandó általános probléma a következõképpen foglalható össze: Adva vannak a magyarországi szuperszámítógépek és közel szuperszámítógép kapacitású klaszterek, amelyeket egyedileg és együttesen is a szuperszámítógép technológiának megfelelõ módon kéne alkalmazni, azaz nagyszámításigényû problémák megoldására. Ennek jelenleg több akadálya van:

  1. Az egyedi géphasználat legnagyobb akadálya, hogy a magyar alkalmazói kör nem, vagy alig ismeri a párhuzamos programozási technológiákat. A szuperszámítógépek és klaszterek mellett hiányzik az az üzemeltetõi szakembergárda, amely hatékony szakértõi támogatást tudna nyújtani a felhasználóknak alkalmazásaik párhuzamosításában.

  2. A Grid-szerû géphasználat akadálya, hogy még a nemzetközileg létezõ legjobb megoldások is csak félmegoldások, számos ponton kutatásra, továbbfejlesztésre szorulnak.

A projekt fõ feladata a fenti problémák megoldása, amely nélkül Magyarország menthetetlenül lemarad mind a kutatásban, mind az iparban, mert a szuperszámítógép technológia alkalmazása nélkül már ma sem lehet ezeken a területeken igazán élvonalbeli eredményeket elérni, a jövõben pedig a Grid technológia alkalmazásának hiánya vezet majd hasonló lemaradáshoz.

    1. Tudományos és mûszaki célkitûzések

A SuperGrid projekt a fent említett két magyar és több nemzetközi Grid-jellegû projekt eredményeire támaszkodva, azokkal szorosan együttmûködve (ld. 1. ábra) kíván olyan lényeges célokat megvalósítani, amelyek azokból a projektekbõl kimaradtak és amelyek megoldása nélkül a magyar szuperszámítógépes Grid rendszer nem lesz üzemszerûen mûködtethetõ szolgáltatás. Ezek a célok a következõk:

  1. A szuperszámítógépek összekapcsolásával lehetõvé kívánjuk tenni, hogy egy olyan elosztott, nagykapacitású számítási erõforrás jöjjön létre, melyben az erõforrásokat a mindenkori igényeknek megfelelõen, dinamikusan lehet a felhasználók feladataihoz rendelni. Így az egyik számítógépen elhelyezett jobok szükség esetén elérik a rendszerben lévõ más szuperszámítógépek vagy klaszterek erõforrásait is megnövelve ezzel az egyedi számítógépek teljesítményhatárait.



  1. Olyan fejlesztõrendszert kívánunk biztosítani, melynek segítségével a felhasználók kényelmesen és magasszinten specifikálhatják a párhuzamos feladatokat, ill. az elosztott szuperszámítógép rendszeren végrehajtandó jobokat.

  2. Az elosztott szuperszámítógép rendszer jövõbeli finanszirozhatóságát, karbantarthatóságát és korszerûsíthetõségét olyan szolgáltatás kialakításával kívánjuk megoldani, amelynek révén az elosztott szuperszámítógép rendszer üzemeltetõi rendszeres bevételhez juthatnak. Ennek érdekében használhatóságát az ipari szféra felé is megszeretnénk nyítni, amihez három fõ célkitûzést kell megvalósítani:


A fenti célok mellett egy konkrét alkalmazás segítségével szeretnénk megmutatni a kialakított Grid használhatóságát. Erre a célra egy olyan progracsomagot választottunk, amelynek számításigényéhez már az egyedi szuperszámítógépek kapacitása sem elegendõ és ezért futtatásához egy szuperszámítógépes Grid rendszer elengedhetetlen. Ez a programcsomag az MCNP programcsomag, amely az alkalmazott Monte Carlo módszerbõl eredõen rendkívül nagy számítási kapacitást igényel. Például a mûegyetemi 16 processzoros Compaq Alpha Server gépen egy-egy futási eredményre 10-20 órát kell várni. Mivel a számítási feladatok többsége olyan, ahol egymás után, az egyes futások eredményének ismeretében lehet csak újabb inputot összeállítani és futást indítani, csak a Magyar Szuperszámítógép Grid tudja majd biztosítani, hogy az ilyen jellegû számításokat az eddigieknél lényegesen hatékonyabban lehessen elvégezni.

    1. A projektben megoldandó kutatás/fejlesztési feladatok

A projektben létrehozandó Grid rendszer felépítését a 2. ábra mutatja. A projektben egy olyan Grid rendszert kívánunk létrehozni, amely az egyedi szuperszámítógépek és klaszterek, mint autónom egységek együttmûködésén alapszik. Ez azt jelenti, hogy a Grid egyes számítógépei önálló job kezelõ politikát és eszközöket alkalmazhatnak, mint pl. Condor [3], Sun Grid Engine [7], stb., de egységes mûködésük érdekében a Globus Grid middleware rendszerrel lesznek összekapcsolva. A Globus felett a jobok elosztását a Condor jobkezelõ rendszerrel kívánjuk megoldani, mert a NI-2000/08 projekt tapasztalatai alapján ennek számos olyan elõnyös tulajdonsága van (együttmûködési képesség a Globusszal, checkpointing mechanizmus, hibatûrés, jobok igényeinek és erõforrások kiosztási politikájának egyeztetése), amely biztosítja, hogy a Condort használó Grid rendszer valóban megbizhatóan mûködjön. Ahhoz, hogy a Gridben párhuzamos programot is el lehessen indítani a párhuzamos programok elõállítására több lehetõség kínálkozik:

  1. Condor Master/Worker programozás

  2. PVM programozás [8]

  3. MPI programozás [9]


A Condor Master/Worker programozás a párhuzamosításnak egy speciális, de kétségtelenül hatékony és igen egyszerû formáját valósítja meg. Ez jól alkalmazható az un. barátságos Condor klaszterek esetén, de jelenleg általános formában a Griden még csak korlátozottan alkalmazható. A PVM programok is csak a Condor segítségével használhatók jelenleg a Gridben, de ebben az esetben a Condor checkpointing mechanizmusa és hibatûrõ szolgáltatása nem alkalmazható. Végezetül az MPI programok Grid-szerû alkalmazása lehetséges mind Condorral, mind Condor nélkül, de ez még a PVM programokénál is nagyobb problémákat vet fel.

Mindhárom esetre igaz, hogy alacsonyszintû programozási környezet áll csak rendelkezésre, ami használatukat jelentõsen megnehezíti a nem informatikus végfelhasználók számára. Ennek a problémának a leküzdésére egy magasszintû grafikus párhuzamos programfejlesztõ és futtató rendszert, a P-GRADE rendszert [10] kívánjuk adaptálni a Gridre és ezzel jelentõs mértékben megkönnyítjük a Grid használatát a felhasználók széles tábora számára. A Grid használat további megkönnyítése érdekében egy olyan webes portált kívánunk kifejleszteni, amely alól a Grid minden szolgáltatása kényelmesen és könnyen elérhetõ.

Az így kialakított Gridnek nemcsak a párhuzamos és szekvenciális programok gazdaságos kiosztásáról és hatékony végrehajtásáról kell gondoskodni, de emellett biztosítani kell a Gridet alkotó számítógépek biztonságos használatát és védelmét az illetéktelen külsõ behatolóktól. Ugyancsak meg kell oldania a felhasznált gépidõk nyilvántartását és elszámolását a számítógéptulajdonosok és a felhasználók felé.

A fenti rendszer kialakítása érdekében a projektben a következõ fõ tevékenységeket kell végrehajtani (ld. 3. ábra):

  1. Minden Grid komponensen (szuperszámítógépen és klaszteren) installálni kell a Condor, Globus, PVM, MPI és P-GRADE rendszereket.

  2. Ki kell alakítani a Grid job kezelõ rendszert. Ennek érdekében minden Grid komponensen installálni kell valamilyen helyi job kezelõ rendszert (ezek: Condor, LSF, PBS, Sun Grid Emgine) és tanulmányozni kell ezek együttmûködési lehetõségét a Globusszal ill. a Condor Grid szintû job kezelõ rendszerrel.

  3. Létre kell hozni a magasszintû Grid programfejlesztõ rendszert, ami a P-GRADE adaptálását jelenti a Gridhez, ill. együttmûködésének megoldását a Condor rendszerrel és valamely a Griden közvetlenül futtatható MPI rendszerrel.

  4. Ki kell fejleszteni a Grid portált.

  5. Egy konkrét alkalmazáson ki kell próbálni a Grid programfejlesztõ rendszer és a Grid portál alkalmazhatóságát.

  6. Ki kell fejleszteni a Grid gépidõ elszámolási rendszerét.

  7. Ki kell dolgozni és meg kell valósítani a Gridben alkalmazott számítógépek biztonsági rendszerét.




Az alábbiakban a fenti tevékenységek részletesebb leírása következik.


  1. A Grid szoftver elemeinek installálása


Minden Grid komponensen installálni kell a Condor, Globus, PVM, MPI és P-GRADE rendszereket. Ezek azonban nem egyszerre történnek meg, hanem mindegyik elõször egy kiválasztott partner párnál, ahol a kapcsolódó fejlesztés folyik és csak a fejlesztés befejezése után lesznek installálva a Grid többi komponensén is. A projekt végére minden Grid komponensen minden fenti szoftver installálva lesz és ezek képesek lesznek együttes Grid-szerû mûködésre.


  1. Grid job kezelõ rendszer


A projekt keretében együtt kívánunk mûködni az egyik legelismertebb, Grid technológiát fejlesztõ csoporttal, a Condor csoporttal. Célunk, hogy a Condor rendszer alábbi hiányosságait a Condor csoporttal együttmûködve küszöböljük ki:


  1. A Condor nem teszi lehetõvé általános, párhuzamos PVM programok futtatását a Gridben.

  2. A Condornak nincs egy olyan grafikus felhasználói felülete, amely a Condor jobok és különösen a párhuzamosan futtatható Condor jobok kényelmes definiálását biztosítaná.


A Condor alkalmazásának elõnye, hogy már jelenlegi állapotában is széleskörûen és megbízhatóan alkalmazható. Ezt bizonyítják a már korábban említett NI-2000/08 projekt tapasztalatai és az a tény, hogy az MTA SZTAKI klaszterén 2000. november óta több mint 1 millió Condor job futott, amit folyamatosan 3-5 fizikus használt. Ennek megfelelõen a magyar szuperszámítógép Grid felépítéséhez kitûnõ kiindulási rendszert jelent a Condor, másrészt a szükséges Condor know-how már rendelkezésre áll a projekt indításakor. A Condor csoport egyetért azzal, hogy a Condor grafikus felhasználói felülete a P-GRADE rendszer továbbfejlesztéseként ebben a projektben legyen kialakítva cserében azért, hogy a Condor csoport vállalja az 1. pontban leírt hiányosság kiküszöbölését az MTA SZTAKI-val és a BME-vel együttmûködve.


  1. Magasszintû Grid programfejlesztõ rendszer


Magyarországon kifejlesztésre került egy olyan magasszintû párhuzamos programozási technológia, amely világszerte egyedülálló módon képes integrált módon támogatni a párhuzamos programfejlesztés és futtatás minden stádiumát. A projekt harmadik fõ célkitûzése, hogy ezt az eredetileg klaszterek programozására kifejlesztett rendszert, a P-GRADE rendszert, továbbfejlessze a Grid irányába és ezzel egy, az elosztott szuperszámítógépek programozásában is alkalmazható kényelmes keretrendszert kínáljon a szuperszámítógépes Grid végfelhasználói számára. Egy ilyen grafikus keretrendszer létrehozása világszerte egyedülálló elõrelépést jelentene a Grid kutatásokban és a Grid alkalmazhatóságában. Ennek a célnak az érdekében a következõ lépéseket kívánjuk elvégezni a SuperGrid projekt keretében:
















































  1. Grid portál


Általánosan elterjedt módszer Grid rendszerek szolgáltatásainak széleskörû, könnyen elérhetõ biztosítására egy Grid portál alkalmazása. A projekt keretében megvizsgáljuk más Grid rendszerek (pl. Cactus Grid, DataGrid, stb.) portáljainak fõ tulajdonságait és szolgáltatásait és ezek alapján kifejlesztünk egy olyan portált, amely a Magyar Szuperszámítógép Grid számára a legelõnyösebb formában tálalja a szükséges információkat és biztosítja a szolgáltatások elérését.



  1. Párhuzamos programozási esettanulmány a Magyar Szuperszámítógép Griden


Annak érdekében, hogy a Magyar Szuperszámítógép Grid használhatóságáról meggyõzõdjünk, illetve, hogy egy konkrét feladat megoldása kapcsán a végfelhasználóktól azonnali visszacsatolást kapjunk, a projektben kidolgozunk egy a Griden futtatható párhuzamos alkalmazást.


A program a Los Alamos Laboratórium által terjesztett formában, forrásnyelven rendelkezésre áll, mintegy 48000 fortran sort tartalmaz (ha a common blokkok csak egyszer vannak felsorolva). A terjesztett változat lehetõvé teszi a PVM alapú felhasználást. Az MCNP program Griden történõ alkalmazhatóságát három lépésben vizsgáljuk meg:


      1. Condor PVM jobként a projekt elsõ fázisában

      2. A program P-GRADE rendszer alatti átdolgozása után:

        1. közvetlenül a P-GRADE alapú Gridben

        2. Condor jobként a P-GRADE/Condor alapú Gridben

      3. A Grid portál segítségével a projekt utolsó fázisában


  1. Gépidõelszámolás


Annak érdekében, hogy a szuperszámítógépes Gridet alkotó számítógépeken a gépidõ elszámolás korrekt legyen és ezzel az igazi szuperszámítógépes Grid szolgáltatást meg lehessen teremteni ki kell dolgozni ennek az elszámoló rendszernek, mind a mûszaki, mind a szervezeti szabályait. A mûszaki megoldás a Condor log file-ok alkalmazására épül, felhasználva és továbbfejlesztve a ConderView eszközt. Ennek a megoldásnak kezdõlépései megtörténtek a már korábban említett NI-2000/08 Grid projekt keretében. Itt ennek olyan továbbfejlesztésére kerül sor, amely nemcsak szekvenciális PVM jobokra, hanem párhuzamos PVM és MPI jobokra is alkalmazható és figyelembe veszi az összes magyar szuperszámítógépet üzemeltetõ szervezet szempontjait és érdekeit.



  1. Biztonságtechnika


A biztonságtechnikai kérdések megoldása rendkívül fontos egy olyan környezetben, ahol programok szabadon indithatók a Gridhez tartozó minden egyes számítógépen. A helyzet itt még rosszabb, mint a scriptek használatát is megengedõ web szerverek esetén, hiszen ott az alkalmazható scriptek elõre kerülnek legyártásra és csak a rendszer adminisztrátor engedélyével kerülnek felinstallálásra. Ezzel a szemben a Grid esetén ilyen kontrol nem létezik. A felhasználókra van bizva, hogy problémájuk megoldása érdekében milyen programot írnak és indítanak el a Grid gépein. A biztonságtechnikai kérdések megoldása nélkül a szuperszámítógépes Grid használhatatlan lenne, hiszen egyik partner központ sem bizhatna a többiekben és így elöbb vagy utóbb, de minden partner központ kivonná gépeit a Gridbõl. Ennek megfelelõen a projekt egyik legfontosabb célkitûzése a biztonságtechnikai kérdések megvizsgálása és egy olyan biztonságtechnikai technológia és szabályrendszer kidolgozása, amelynek betartása esetén a Grid biztonságos használata legalább ésszerû szinten szavatolható. Itt említünk néhány problémát, aminek megoldása része a fenti cél elérésének:


  1. A szuperszámítógépes Grid kialakítása szempontjából az egyik legnagyobb problémát a szuperszámítógépeket és klasztereket körülvevõ tûzfalak jelentik. Ezek megtartása lehetetlenné teszi a gépek együttmûködését a Gridben, lebontásuk pedig sebezhetõvé tenné az egész szuperszámítógépes Gridet. A két egymásnak ellentmondó követelmény kielégítésére egy olyan virtuális privát hálózatot kell kialakítani az akadémiai hálózat felett, ami a tûzfalat csak a szuperszámítógépes Gridben résztvevõ gépek számára nyitja meg, a külsõ gépeket viszont kizárja.

  2. A P-GRADE eredetileg klaszterek programozására lett kidolgozva, így a Gridben való használathoz szükséges biztonságtechnikai kérdések megoldása a jelenlegi verziójából hiányzik. Ennek megfelelõen a P-GRADE fejlesztõ- és párhuzamos futtatórendszer biztonságos használatának megoldása fontos eleme a projektnek. Itt olyan megoldások jöhetnek szóba, mint pl. a UNIX alatti chroot démon használata. Ez azt jelenti, hogy a P-GRADE számára és az összes általa indított processz számára az a könyvtár jelenik meg root könyvtárként, melyben a P-GRADE elindul. Így a P-GRADE és az általa elindított programok semmiképp nem érhetik el az igazi root könyvtárat és az azalatti könyvtárakat.

  3. Említettük már, hogy a gépidõelszámolás megoldása fontos eleme a Grid rendszer kidolgozásának. Ez természetesen a Grid aktivitások monitorozását jelenti, akárcsak a Griden futó jobok nyomkövetése. Ennek megfelelõen a Grid monitorozás biztonságtechnikai vonatkozásait ugyancsak meg kell vizsgálni a projektben.

  4. A P-GRADE-hez hasonlóan meg kell vizsgálni a közvetlenül PVM-ben, MPI-ban, vagy Condorban indított programok biztonságtechnikai kérdéseit és a Globus által nyújtott GIS szolgáltatás alkalmazhatóságát.

  5. Ki kell dolgozni egy olyan biztonságtechnikai szabályzatot, amelynek betartása a Gridben együttmûködõ minden partnerre kötelezõ. Ugyancsak ki kell dolgozni azt a szankciórendszert, amelyet a biztonságtechnikai szabályzatot megsértõ partnerre kell alkalmazni.


Itt kell megemlíteni, hogy az elõzõ magyar Grid-orientált projektek a fenti kérdésekkel egyáltalán nem foglalkoztak. A DemoGrid projektnek ugyan van biztonságtechnikai aspektusa, de az a közös file-ok védelmére vonatkozik és nem a Gridben indítható processzek hatáskörének biztonságtechnikai kérdéseivel.


Következtetések


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. Ennek megfelelõen a projekt a következõ társadalmi célokat tûzte ki:

  1. Fontos cél a megfelelõ szakértõi gárda kinevelése, amely nélkül a szuperszámítógépek és klaszterek hosszú távú kihasználtsága nem biztosítható.

  2. A létrehozandó rendszert, mint folyamatosan elérhetõ szolgáltatást kívánjuk biztosítani mind a kutatói, mind az ipari szféra számára. A projekt egyik legfontosabb célja, hogy általa minél több alkalmazás párhuzamosítása, igazi szuperszámítógépes futtatása kezdõdhessen meg. Ennek érdekében egy konkrét alkalmazás párhuzamosítását célozzuk meg a projektben, és ennek alapján egy olyan párhuzamosítási szakértõi szolgáltatás létrehozását, melynek segítségével mind a kutatói, mind az ipari szférából folyamatosan és egyre több alkalmazás párhuzamosításában tudunk résztvenni.

Hivatkozások


[1] http://www.lpds.sztaki.hu/conv.php?page=./projects/current_projects/ni2000/index&pr=1

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

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

[4] http://www.datagrid.cnr.it/

[5] http://www.iif.hu/szuper/

[6] http://www.lpds.sztaki.hu/cluster_computing/klaszterjell/index.htm

[7] http://www.gridengine.sunsource.net

[8] http://www.epm.ornl.gov/pvm/

[9] http://www-unix.mcs.anl.gov/mpi/

[10] http://www.lpds.sztaki.hu/conv.php?page=./projects/p_grade/index

[11] http://www.niu.edu/mpi/