SKÁLÁZHATÓ DESKTOP GRID RENDSZER
1
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