SKÁLÁZHATÓ DESKTOP GRID RENDSZER1
SCALABLE DESKTOP GRID SYSTEM
Kacsuk Péter, kacsuk@sztaki.hu
Podhorszki Norbert, pnorbert@sztaki.hu
Sipos Gergely, sipos@sztaki.hu
MTA SZTAKI
Számítástechnikai és Automatizálási Kutatóintézet
Összefoglalás
A SZTAKI Desktop Grid lehet
ý
vé teszi intézmények számára, hogy szervezeti egységeinek
(tanszékek, laborok, osztályok) egyedi PC-it és klasztereit egy-egy desktop grid rendszerbe szervezze
és azokon egy elosztott számítási projekt feladatait futtassa. A szervezeti egységeket a hierarchikus
felépítéssel egy nagyobb egységbe lehet szervezni és azon intézményi projekteket futtatni. A SZTAKI
Desktop Grid mintarendszere három fokozatos lépésben segíti az érdekl
ý
d
ý
ket abban, hogy eljussanak
egy saját desktop grid rendszer birtoklásáig és használatáig.
1. Bevezetés
A tudományos számításokat támogató Grid rendszerek eredeti törekvése az volt, hogy
bárki erýforrást tudjon felajánlani a Grid rendszerek számára, ill. erýforrást tudjon onnan
szerezni dinamikusan, igényeinek megfelelýen annak érdekében, hogy számításigényes
feladatait minél gyorsabban, minél több erýforrás bevonásával tudja elvégezni. Sajnos az
eredeti célkitőzés nem valósult meg teljes mértékben. Jelenleg két egymástól jelentýs
mértékben eltérý irányzat figyelhetý meg a Grid rendszerek fejlýdésében.
Az elsý irányzat arra törekszik, hogy olyan Grid szolgáltatást hozzon létre, ami a
felhasználók számára stabilan, szolgáltatásként érhetý el. Egy erýforrás grid erýforrássá
alakítását elýre megszabott grid szoftver rendszerek feltelepítésével érik el. Mivel ezek a grid
szoftver rendszerek meglehetýsen bonyolultak, feltelepítésük és karbantartásuk komoly
szakértelmet igényel. Ennek eredményeképpen a Grid erýforrásait nem egyének, hanem
intézmények biztosítják, akik professzionális rendszergazdákat alkalmaznak és ezzel
garantálják a Grid magas színtő rendelkezésre állását. Ilyen Grid rendszerekre példa a
legnagyobb európai Grid az EGEE Grid (és annak magyar verziója a HunGrid), vagy az
Egyesült Királyságban alkalmazott Nemzeti Grid Szolgáltatás. Az eredeti célkitőzésbýl tehát
nem teljesül az a kitétel, hogy bárki erýforrást biztosíthat a Grid számára. Ugyanakkor bárki
használhatja az ilyen Gridek erýforrásait, ha sikeresen beregisztrált egy adott Grid
engedélyezési hatóságánál és onnan egy Grid jogosítványt kapott.
A második irányzat az elsý irányzatnak épp a komplemense az eredeti célkitőzések
tekintetében. Ez az irányzat lehetývé teszi, hogy bárki erýforrást allokáljon a Grid számára, de
nem teszi lehetývé, hogy bárki használhassa ezeket az erýforrásokat. Ennek az irányzatnak az
egyik közismert példája a SETI@home rendszer [1][2]. A SETI-szerő Gridekben (általánosan
használt nevük szerint a desktop gridekben) a PC tulajdonosoknak nem kell bonyolult Grid
1 A cikkben leírt kutatómunkát és fejlesztést az IHM 4671/1/2003 számú, az OTKA T042459 számú,
a GVOP-3.1.1.-2004-05-0359/3.0 számú és a GVOP-3.1.1.-2004-05-0145/3.0 számú projekt támogatta.
szoftver rendszert installálniuk, mindössze PC-jüket kell beregisztrálni a Grid rendszer
központi web lapján. Ezután a grides alkalmazás kódja és az általa feldolgozandó
adatcsomagok letöltése automatikusan történik. A PC tulajdonosa lényegében észre sem
veszi, hogy számítógépén a háttérben (pl. képernyývédý programként) egy grides alkalmazás
fut. A desktop gridekben az alkalmazásokat az un. mester/szolga paradigma alapján
dolgozzák fel. Az alkalmazást nagy számú adatcsomag egymástól független végrehajtására
bontják fel. Az adatcsomagok feldolgozását a szolgák (PC-k) végzik pontosan ugyanazt a
kódot futtatva. A Grid központi szerver gépe futtatja a mester programot, amelynek az a
feladata, hogy a szolgák számára a végrehajtandó kódot és az adatcsomagokat kiossza, ill. a
szolgáktól érkezý eredményeket feldolgozza.
A desktop grid rendszerek elýnye az egyszerőségük, hátrányuk, hogy csak olyan
alkalmazásokra használhatók, amelyek a mester/szolga paradigma alapján hatékonyan
feldolgozhatók. A desktop grid rendszereket eddig világméretekben alkalmazták olyan
nagyszabású feladatok megoldására, mint a rákkutatás, vagy a Földön kívüli intelligencia
keresése a világőrbýl érkezý rádiójelekben.
A SZTAKI-ban azonban úgy gondoltuk, hogy a desktop gridek kisebb méretekben is
hatékonyan és kényelmesen alkalmazhatók, sýt ezek a desktop gridek lehetnek a nagyobb
mérető Gridek alkotó elemei. Ez egy olyan új koncepció, ami gyökeresen megváltoztathatja a
Grid rendszerek fejlýdési irányait.
Mindenekelýtt kidolgoztuk egy olyan desktop grid prototípusát és az ahhoz kapcsolódó
programozási API-t, aminek segítségével egy nagy mértékben skálázható és széles körben
alkalmazható Grid koncepció jött létre. A SZTAKI Desktop Grid prototípus a BOINC
rendszerre [3] alapul, és azt fejleszti tovább a skálázhatóság érdekében, ill. a programozási
API támogatása érdekében.
2. A SZTAKI Desktop Grid rendszer
Egy desktop Grid rendszer egy szervezeten (intézményen, vagy annak akár csak egy
osztályán) belül felállítva lehetývé teszi
- a szervezeti egység PC-inek bekötését a desktop gridbe,
- elosztott számítási projektek létrehozását erre a desktop grid infrastruktúrára, és
- a PC-k felhasználását ezeknek a projekteknek a részfeladatainak kiszámítására.
A SZTAKI Desktop Grid lényege, hogy bármilyen szinten használható és az egyes szintek
egymáshoz könnyen csatolhatók annak érdekében, hogy a különbözý SZTAKI Desktop
Gridek egymással is együtt tudjanak mőködni. Így a SZTAKI Desktop Gridben négy variációt
különböztetünk meg:
1. Normál Desktop Grid
2. Vegyes Desktop Grid
3. Hierarchikus Desktop Grid
4. Kollaboratív Desktop Grid
A Normál Desktop Grid felel meg a hagyományos SETI-szerő desktop grid koncepciónak,
ahol egy központi szerverhez (amely több számítógépbýl állhat) csatlakozik minden egyes PC
anélkül, hogy egymásról tudnának és kommunikálnának egymással, lásd 1. ábra.
A Vegyes Desktop Grid lényege, hogy a szolga szerepkört a desktop gépek mellett
klaszterek is eljátszhatják. Így nem csak egyéni PC tulajdonosok allokálhatják gépeiket a
desktop grid számára, de nagyobb komplexitású intézményi klaszterek is részt vehetnek a
Grid megvalósításában. Ezzel egy jelentýs lépést teszünk az elsý irányzatban látott
erýforrások potenciális Gridbe kapcsolására is. A megvalósításnak több változata is
lehetséges. A SZTAKI Desktop Gridben, ahogy a 2. ábra is mutatja, egy önálló Desktop Grid
kliens fut a klaszter front-end gépén. Ez a kliens ugyanúgy viselkedik kifelé a Desktop
Gridben, mint egy normál PC-n futó kliens, de a letöltött munkacsomagokból a klaszter
eredeti feladatütemezýje számára állít elý job-okat. Az ütemezý feladata továbbra is minden
program futtatása a klaszteren, míg a kliens az eredményeket egyszerően visszaküldi a
Desktop Grid szerverének.
Desktop
Grid
Központi
szerver
1. ábra
Normál Desktop Grid
Klaszter
Desktop
Grid
Központi
szerver
DG kliens
Klaszter
feladatütemez
ý
je
ý
2. ábra
Vegyes Desktop Grid klaszterek
támogatásával
A Hierarchikus Desktop Grid (lásd 3. ábra) lehetývé teszi, hogy az egyetemi tanszékeken
kialakított desktop gridekbýl kari desktop gridet, ill. a kari desktop gridekbýl egyetemi
desktop gridet szervezzünk. Ez természetesen bármilyen más szervezeti egységek esetén is
mőködhet. Egy osztály egy ideig elégedett lesz a normál desktop griddel, amely még az
esetlegesen meglévý klasztert is bevonja a számításokba. Több osztálynak is lehet egy-egy
desktop gridje, ám felmerül a kérdés, hogy mi van akkor, ha magasabb intézményi szinten egy
fontos projektet szeretnénk indítani és az osztályok erýforrásait felhasználni. Speciális
megoldások helyett ezeknek a már mőködý desktop grid példányoknak hierarchiába
szervezése jelentheti a legegyszerőbb megoldást. Ilyen esetben, a magasabb szintő projekt az
alacsonyabb szintő desktop grid erýforrásait is használhatja, ha azokat az egyes osztályok nem
használják ki teljesen, illetve ha a prioritások beállításával a magasabb szintő projektnek
kedvezünk.
Végezetül a Kollaboratív Desktop Grid lehetývé fogja tenni, hogy egyenrangú desktop
gridek mőködjenek együtt annak érdekében, hogy a szabad PC-k kihasználása minél jobb
hatásfokkal valósuljon meg a különbözý desktop gridek között. Ez a szervezési mód akkor
lehet érdekes, ha egymástól független intézmények szeretnék erýforrásaikat egymásnak
rendelkezésre bocsátani úgy, mint más grid rendszerek (KlaszterGrid, HunGrid) esetében. A
felépítés nem különbözik a Hierarchikus Desktop Gridtýl, de az autentikáció (azonosítás) és a
biztonság igénye még fokozottabban jelentkezik. Egyértelmően azonosítani kell a másikat,
például tanúsítványok használatával, mint más grid rendszerekben és természetesen a desktop
grid rendszert fel is kell készíteni a tanúsítványok kezelésére. A végrehajtandó programok
átadásának biztonságára nagyon kell ügyelni, mert egy rosszindulatú program a desktop grid
minden PC-jén könnyen elterjedhet.
Desktop
Grid
Központi
szerver
Desktop
Grid
Központi
szerver
Desktop
Grid
Központi
szerver
3. ábra
Hierarchikus Desktop Grid
2.1 Lokális és globális desktop grid
Mind a négy desktop grid fajtát lehet lokális és globális szinten is alkalmazni. A lokális
szint azt jelenti, hogy a teljes desktop grid (legyen az normál, vegyes, hierarchikus, vagy
kollaboratív) ugyanazon tőzfal mögött van, azaz vagy lokális hálózattal, vagy VPN-nel
vannak a desktop grid erýforrásai összekötve. Ilyenkor a biztonsági követelmények kevésbé
szigorúak. Tipikusan ezt ajánljuk az egyetemeken belüli desktop gridek kialakítására. A
globális szint azt jelenti, hogy az erýforrások Interneten keresztül kapcsolódnak egymáshoz.
Ha például két egyetem köti össze desktop grid rendszereit, akkor ezt lehet Globális szinten
megvalósítani. (Az eredeti SETI rendszer is globális desktop grid volt.)
2.2 Jelenlegi állapot és jövýbeli tervek
A SZTAKI Desktop Grid-ben a Normál Desktop Grid alapverzió folyamatosan mőködik a
következý fejezetben ismertetett mintarendszerként, ez publikusan elérhetý. A klaszterek
támogatása és a hierarchiák felépítése jelenleg megvalósítás alatt áll, így a Vegyes és
Hierarchikus Desktop Grid még nem nyilvánosan elérhetý. A kollaboratív felépítés biztonsági
követelményeit és megoldási lehetýségeit jelenleg tanulmányozzuk, és a Kollaboratív
Desktop Gridet specifikáljuk.
2.3 A SZTAKI Desktop Grid programozása
Az eredeti BOINC infrastruktúra programozása nem egyszerő. Bár a mester-szolga
alkalmazások megvalósítása általában egyszerő, egy BOINC alkalmazás létrehozása sok
nehézséggel állítja szembe az fejlesztýt. Az infrastuktúra mőködésének és az eloszott
projektek menedzselésének alapos ismerete szükséges. A SZTAKI-ban kifejlesztettünk, egy
nagyon egyszerő programozási interfészt, amely mindössze öt mőveletet definiál. Ennek
segítségével egy fejlesztý könnyedén – csak a mester-szolga viszonyra koncentrálva –
készítheti el az alkalmazást. A programozási interfészrýl bývebben [5]–ben olvashat az
érdeklýdý.
3. SZTAKI Desktop Grid mintarendszer
A fenti desktop grid variációk tehát igen nagy variációs lehetýséget nyújtanak a potenciális
alkalmazók számára. Javasoljuk elýször a tanszék szintő desktop gridek kiépítését, majd ezek
összekapcsolását kari desktop griddé, és így tovább. Annak érdekében, hogy ezeknek a
desktop grideknek a létrehozását támogassuk egy nyilvános mintarendszert telepítettünk a
SZTAKI-ban. A mintarendszer tartalmaz egy mester szervert és több szolga PC-t. A
mintarendszer web lapján [4] keresztül bárki regisztrálhatja PC-jét és kipróbálhatja a rendszer
mőködését. Aki kedvet kap egy saját desktop grid kialakítására, annak segítünk a saját szerver
felállításában. Ugyancsak segítséget adunk az alkalmazások gridesítésében és a desktop
griden töténý telepítésében. A mintarendszer segítségével három lépésben ismerkedhet meg
egy érdeklýdý a technológiával:
1. Saját PC-jét felajánlhatja a SZTAKI-ban elkészített feladat támogatására, így
kipróbálhatja, hogyan mőködik a desktop grid a PC szemszögébýl.
2. A SZTAKI segít egy elosztott alkalmazás kifejlesztésében és mőködteti a központi
szervert. Az érdeklýdý biztosítja a PC-ket. Így kevés erýfeszítéssel eljuthat odáig, hogy
saját elosztott alkalmazását oldja meg a saját PC-in.
3. A SZTAKI segít egy saját, önálló központi szerver felállításában és megtanítjuk annak
karbantartására. Ezzel saját desktop gridje lesz az intézményen vagy cégen belül.
Az elsý lépés azt a célt szolgálja, hogy az érdeklýdý PC-jével részt vehessen a SZTAKI
Desktop Grid mőködésében, és lássa, hogyan vesz részt egy-egy PC az egész rendszer
munkájában. Az érdeklýdý dolga nagyon egyszerő: regisztrálnia kell magát a honlapunkon és
telepítenie kell a PC operációs rendszerének megfelelý kliens-szoftvert. Ezek után a PC
automatikusan letölti és végrehajtja a feladatokat anélkül, hogy az érdeklýdý megszokott
számítógépes tevékenységeiben zavarná.
Ha a desktop grid ötlete megtetszik, és van igénye saját feladatok megoldására és vannak
hozzá PC-i (illetve tud olyanokat, akik besegítenének), akkor a második lépésben a SZTAKIban
kifejlesztett egyszerő programozási interfész segítségével kifejlesztheti a saját
alkalmazását. A központi szerver felállítását és karbantartását a SZTAKI vállalja, így csak a
PC-ken kell elindítani a kliens-szoftvert és a feladat megoldására lehet koncentrálni.
Ha a desktop grid alkalmazása egy saját alkalmazás végrehajtására sikeres, minden
bizonnyal újabb igények támadnak, valamint az érdeklýdý saját kezébe szeretné venni a teljes
rendszer irányítását. A SZTAKI ekkor segítséget nyújt egy desktop grid rendszer házon belüli
kialakításában, saját központi szerverrel. Ekkorra az érdeklýdý saját desktop grid rendszerrel
rendelkezik, amelyen saját alkalmazásai futnak.
Ezek alapján reméljük, hogy egy országos mozgalom alakul ki, melynek eredményeképpen
minden egyetemi tanszéknek és MTA kutatóintézetnek létrejön a saját desktop gridje, majd
egy következý fázisban megindul ezek integrálása több, egyre nagyobb hierarchikus és
kollaboratív desktop grid rendszerré.
4. Összefoglalás
A desktop grid koncepciója lehetývé teszi, hogy egy szervezeti egységnek (tanszékek,
laborok, osztályok) egyedi PC-it és klasztereit egy-egy desktop grid rendszerbe szervezzük és
azokon egy elosztott számítási projekt feladatait futtassuk. A könnyő telepíthetýség és
karbantarthatóság erýs kontrasztban áll más grid rendszerek bonyolultságával. Ezért várható,
hogy a desktop grid rendszerek gyorsabban fognak elterjedni, mint a többiek. A hierarchikus
felépítés már a több felhasználó támogatásának irányába mutat, bár itt még csak egy irányú a
birtokviszony. A kollaboratív felépítés már ötvözi a grid rendszerek elýnyeit, azaz könnyő
karbantarthatóság mellett sokan használhatják majd az erýforrásokat. A SZTAKI Desktop
Grid mintarendszere három fokozatos lépésben segíti az érdeklýdýket abban, hogy eljussanak
egy saját desktop grid rendszer birtoklásáig és használatáig.
Irodalomjegyzék
[1] SETI@home: http://setiweb.ssl.berkeley.edu/
[2] D.P. Anderson, J. Cobb, E. Korpela, M. Lebofsky, D. Werthimer: SETI@home: An
Experiment in Public-Resource Computing, Communications of the ACM, Vol. 45 No.
11, November 2002, pp. 56-61.
[3] BOINC: http://boinc.berkeley.edu
[4] SZTAKI Desktop Grid mintarendszer: http://www.lpds.sztaki.hu/desktopgrid
[5] Podhorszki, N., Vida, G.: Alkalmazói programozási felület SETI-jellegő elosztott
programokhoz és végrehajtó rendszer a BOINC infrastruktúrára. Networkshop 2005,
Szeged. NIIF, 2005. http://nws.iif.hu/ncd2005