Az elosztott számításokról (BIT magazin)

Hány egyenletet oldott meg egy vegyész száz évvel ezelőtt? Hány logikai műveletet hajtott végre egy biológus? Hallottak-e már halmazelméletről a csillagászok? Valószínűleg nem sokat, sőt, amennyire tudni lehet, kifejezetten különlegesnek számítottak azok a tudósok, akik egyszerre több tudományterületen is otthonosan mozogtak. Később egyre gyakrabban fordult elő, hogy eltérő tudományterületekről siettek egymás segítségére a tudósok, így természetesen a számítástechnika és a programozás áldásait is igénybe vették. Először talán csak a jegyzőkönyveket, publikációkat írták számítógépen, aztán fokozatosan derült ki, hogy a számítógépek fejlődése következtében rendelkezésre álló számítókapacitás hogyan segítheti a munkájukat a vegyi, biológiai folyamatok modellezése során.

Néhány évvel ezelőtt a Stanford University kémiai laborjában az ismert proteinstruktúrákat próbálták visszafejteni a gének sorrendjének próbálgatásával. A lehetséges variációkat összehasonlították az immár ismert géntérképpel, így lassan megismerhették az emberi testben található gének ismeretlen funkcióit. Azonban rengeteg variációs lehetőség lévén nagyon lassan haladtak előre, az összes lehetséges sorrend próbája pedig fel sem merült, amíg… Különösebb biokémiai ismeretek nélkül is érezhető, hogy az egyes génszekvenciák összeállítása és próbája független egymástól, tehát a teljes számítási feladat is független részekre bontható. A kellően kis méretű részfeladatokkal hétköznapi számítógépek felesleges erőforrásai is megbirkóznak néhány nap alatt, tehát ha sok-sok számítógépen tudnák párhuzamosan végezni ezeket a teszteket, az a tudományos munkát is nagymértékben megkönnyítené. Csak meg kellett szervezni az adatok szétosztását és az eredmények begyűjtését, és írni egy kliensprogramot, ami alacsony prioritással végzi a számításokat a csatlakozó felhasználók számítógépén.

Kazaa like?

A részekre bontott számításokat végrehajtó rendszereket előszeretettel hasonlítják a peer-to-peer technológiával működő fájlcsere-hálózatokhoz, holott programozói szempontból teljesen másról van szó. A fájlcserehálózatok ereje magában a kapcsolatban van, hogy az egy időben csatlakozó felhasználók kapcsolatba léphetnek, és fájlokat tölthetnek le egymástól. Esetünkben a kliensprogramok csak a központi szerverrel kommunikálnak, amíg letöltik a végigszámolandó adatcsomagokat és visszaküldik az eredményeket. Az ötlet lényege az egyszerre dolgozó gépek nyújtotta nagyobb teljesítményben van, a kapcsolat csupán a technikai lebonyolítás eszköze. A fájlcsere-hálózatokat a GRID-ekhez érdemes hasonlítani, ahol a hálózatba kötött számítógépek szintén kapcsolatba léphetnek egymással, és olyan eseményeket tudnak modellezni, amelyek esetében a rendszer elemei kölcsönhatásba lépnek egymással (gondoljunk például a gázmolekulák viselkedésére vagy az ősrobbanásra).

Megvalósítás a gyakorlatban

Az egymástól független kliensek esetében a tudományos probléma jellegétől függően az is előfordulhat, hogy maga a programozási feladat nem is igazán bonyolult. Gondoljunk csak az RSA-kódolás feltörésére, ahol prímteszteket kell végrehajtani, ami programozói szempontból kevésbé bonyolult, viszont nagyon sok számolás, azaz processzoridő kell hozzá. Ezen az úton tehát olyan problémákat lehet hatékonyan megoldani, amelyeknél nem a számítógépes modellezés, hanem a szükséges számítógépes kapacitás hiánya okoz nehézséget.

Amikor az internetre kötött gépeken csak szöveget szerkesztő felhasználók millióira gondolunk, nyilvánvaló, milyen óriási kihasználatlan kapacitások rejlenek a nagyvilág számítógépeiben. Olyan kliensprogramokat írtak tehát, amelyeket a számítástechnikai kérdésekben járatlan felhasználók is futtatni tudnak. A nagyközönség bevonásának technikai feltételei tehát adottak voltak, tömegeket azonban csak olyan kutatásokba lehet hatékonyan bevonni, amelyek valamilyen népszerű eredménnyel kecsegtetnek, mint például az ufókeresés vagy halálos betegségek gyógyszerének kifejlesztése.

SETI@Home

A Puerto Rico-i Areciboban, a SETI obszervatóriumában áll az a távcső, amely begyűjti a világűrből azokat az adatokat, amelyeket a Berkeley Egyetem csillagászai elemzésre szétosztanak az interneten. Az alább tárgyalandó rendszerek közül szerintem a SETI kliensprogramja adja vissza legjobban a kutatás hangulatát, ugyanis a többi program esetében látható szakaszosan forgó molekulák helyett folyamatosan rajzolja a képernyőre az elemzett hangok frekvenciáját.

A fejlesztő csillagászok is úgy vélik, hogy a Földön kívüli élet kialakulása időben, távolságban és jellegében annyiféle lehet, hogy nem sok esély van arra, hogy így találjuk meg az idegeneket. A jelenlegi kutatás az égbolt egyharmadát, a lehetséges csatornáknak elenyésző részét, a kommunikációs formák közül egyetlenegyet fed le. Nem is találtak még semmit, és bár a SETI@home képernyővédőnek vagy önálló programnak is szép, a számításokra fordított eddigi félmilliárd processzorévet teljesen hiába pazarolták el a felhasználók. Azt sikerült csak megmutatni, hogy az ötlet (az ufókeresés és az elosztott számítás is) működőképes, és egy szimpatikus ötlet nyomán többmillió átlagos számítógép-felhasználót sikerülhet bekapcsolni egy ilyen programba.

United Devices

A brit Oxford Egyetem számítógépes gyógyszerkutató központja és az Amerikai Rák Társaság által kezdeményezett program során többször százmillió molekula rákellenes hatását elemezték úgy, hogy megvizsgálták négy, a leukémia kialakulásában kulcsszerepet játszó fehérjére gyakorolt hatásukat. A két szponzor az (amerikai) Nemzeti Rákkutatási Alapítvány és az Intel volt, továbbá a United Devices biztosította a szükséges technikai (számítógépes) hátteret.

A rendszerrel sajnos sok gyakorlati probléma van. Ha a kliensprogram folyamatosan fut, rengeteg memóriát foglal, ami nem is gond, amíg más programoknak nincs rá szüksége. Viszont a nagy memóriaigényű Word vagy Photoshop indításakor a lefoglalt memóriát az UD kliensprogramja nehézkesen adja vissza, gyakorlatilag idegesítően sokat teker a vinyó, amíg más program el tud indulni.

Az UD kliensprogramja egy csomagban száz molekula adatait fogadja. Működés közben a részeredményeket csak az egyes molekulák vizsgálatának végén menti el, tehát ha a program futását például a gép kikapcsolásával megszakítjuk, akkor az éppen vizsgált molekulával kapcsolatos addigi eredmények elvesznek. Csakhogy manapság már sorozatosan érkeznek olyan molekulák, amelyeket egy P3-as gép egy egész nap alatt sem számol végig. A titkárnő viszont négykor végez, és a gép kikapcsolásakor a fentiekből adódóan elveszhetnek az egész napi számítások. Másnap a bekapcsolás után a program kezdi elölről ugyanazt a molekulát, és ez így megy az idők végezetéig, pontosabban amíg valaki észre nem veszi, hogy a kliensprogramja a folyamatos processzorpörgetés ellenére sem jut túl egy adott százalékon.

A visszaküldött eredmények függvényében egyéni és csapatok közti pontverseny is van. A magyarok ritka egységesen tömörültek a Hungary csapatba, amely jelenleg is a világranglista 6-9. helyén áll attól függően, hogy milyen szempont szerint állítjuk fel a rangsort (például a ráfordított idő alapján hatodikak, a tagok száma alapján kilencedikek vagyunk). Egy tag több kliensprogramot is futatthat azonos felhasználónéven, gondolva egyrészt az újrainstallált Windowsok sokaságára, másrészt a nagyobb hálózatokon sok számítógépet kezelő rendszergazdákra, ilyenkor a pontok természetesen összeadódnak.

Több elvi probléma is felmerült az UD-val kapcsolatban, például hogy nem dokumentálják a programban végrehajtott módosításokat. A kliensprogram nem csak a rákellenes, hanem más kutatásokra is felhasználható (az UD csak a számítástechnikai hátteret adja el pénzért, tőlük független tudományos kutatásokra), és óriási felháborodást keltett, amikor másfél millió felhasználó hirtelen nem a rák, hanem a lépfene ellenszerét kezdte kutatni. Aztán a rák ellenszerének kutatása is viharossá vált, az UD kommunikációs igazgatója szerint régen túlteljesítették az eredeti célokat, az Oxford University professzora szerint viszont pénzhiány miatt le kellett állítani a kutatást. Adalék, hogy az UD kliensprogramja adatokat továbbít a számítógépünk processzoráról, memóriájáról, vinyókapacitásáról és internetes kapcsolatáról, érdemes tehát az adatkezelési nyilatkozat apróbetűs részét is alaposan elolvasni.

Genome & Folding @ Home

Lényegesen szimpatikusabbak a Stanford Egyetem kémiai kutatólaborjának programjai. Nincs közbülső profitorientált cég a tudósok és a felhasználók között, jellemző, hogy a kliensprogram is stanford.edu-s című honlapról tölthető le. Két kutatási programjuk is van, a korábban indult Folding@Home a gének proteinekbe rendeződését modellezi, a Genome @Home keretében pedig ismert proteinstruktúrákat akarnak visszafejteni a génszekvenciák végigpróbálgatásával. A kliensprogram proteinenként több ezer lehetséges génszekvenciát próbál végig, amelyeket összehasonlít a Human Genome Project géntérképével, így végül fény derülhet az emberi testben található gének kétharmadának ismeretlen funkcióira. (A kliensprogramban beállítható, hogy a kettő közül melyik kutatásban vegyünk részt.)

Az install mérete ötöde az UD-énak, és nem foglalkozik a gépünk képességeinek regisztrálásával. A kliensprogram ugyanúgy elmenti a részeredményeket, egy-egy részeredmény kiszámítása azonban átlagos géppel sem tart tovább két-három óránál. Konstans tizenöt mega memóriát használ, és még azt is be lehet állítani, hány százalékát használja a processzoridőnek, amit egy kicsit durung módon, de be is tart, konkrétan egy ideig 100%-on pörgeti a processzort, utána a szükséges ideig pihen.

A Folding@Home esetében a tudományos számítások nem egy széles spektrumon párhuzamosan folynak, hanem mindig egy-egy közepesen bonyolult részproblémát modelleznek. Az adatokat gyorsan szétterítik, majd átlagosan három nap alatt visszakapják az összes szükséges eredményt. Vagyis, akinek a Folding@Home adatcsomagjának végigszámolása ennél tovább tart, annak ugyan beszámítják az eredményeit az itt is megvalósított pontversenybe, az eredmény azonban nem képvisel tudományos értéket, átlagos géppel tehát érdemes inkább csak a Genome@Home-ba bekapcsolódni.

Akinek pedig sem az ufókutatás, sem a biokémia nem elég szimpatikus, az segítséget nyújthat például az időjárás-előrejelzéshez is, vagy keressen magának más nemes célt. És ki tudja, hátha E.T. nálad hallózik be először…

Szatmári Péter
BIT, 2003. december

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük