Tudományos kutatás otthoni PC-vel

Vágólapra másolva!
Szerte a világon, a felhasználók millióinak számítógépein hatalmas processzorteljesítmény hever kihasználatlanul. Ezt az óriási kapacitást az  interneten keresztül kutatási célokra is fel lehet használni a világhálón keresztül.
Vágólapra másolva!

Számítógépeink teljesítménye évről évre dinamikusan növekszik. Az Intel cég egyik társalapítójáról elnevezett Moore törvénye értelmében másfél-két évente megduplázódik a processzorok számítási kapacitása. Mindemellett darabszámra is egyre több a számítógép a háztartásokban, irodákban. Ez összességében óriási számítási kapacitást jelent, amely javarészt kihasználatlan marad. Ennek a felesleges kapacitásnak a kihasználására születtek meg a nagy népszerűségnek örvendő elosztott internetes számítási projektek.

Kínálat és kereslet

Szinte mindenki szokott játszani számítógépével. Éppen a modern játékoknak köszönhető, hogy a hardvergyártók el tudják adni újabb és újabb generációs nagy teljesítményű processzoraikat, hiszen ezek a játékok - háromdimenziós grafikájukkal, egyre fejlettebb mesterséges intelligenciájukkal - hatalmas számítási teljesítményt igényelnek. Elég itt csak a nemrég megjelent Doom3 című játékra gondolni: a szoftver futtatása csúcsgépet igényel, és hatására érezhetően megnőtt a piacon a nagy teljesítményű processzorok és grafikus kártyák iránti kereslet.

Az irodai számítógépek esetében is az a szokás, hogy egy-egy számításigényesebb munkafázishoz igazítják a gépek teljesítményét. Ez érthető is, hiszen nem hatékony a munkavégzés, ha perceket kell várni egy-egy bonyolultabb adatbázis-műveletre. Azonban ilyen feladatok viszonylag ritkán fordulnak elő, a nap legnagyobb részében a számítógépek be vannak kapcsolva, azonban legfeljebb egy szövegszerkesztő vagy táblázatkezelő fut rajtuk, ami legfeljebb 1-2 százalékos processzorterhelést jelent.

A számítási teljesítmény piacán tehát megtaláltuk a kínálati oldalt, rengeteg szabad erőforrással. A kereslet pedig még nyilvánvalóbban jelentkezik. Mindannyian tudjuk, hogy nagyszabású katonai, időjárás-szimulációs, biokémiai, matematikai és hasonló projektek folynak szerte a világban, amelyekhez egyes intézmények elképesztő számítási teljesítményű és árú szuperszámítógépeket vesznek igénybe. Ezek is többfélék lehetnek: vannak közöttük mainframe, azaz nagygépes architektúrájú, akár egyedileg készített óriásgépek vagy hétköznapi PC-k, amelyeket klaszterbe kapcsolva fognak közös munkára. Sok olyan feladat van, amelyhez hatalmas számítási kapacitás szükséges, és mint láttuk, a világban szétszórva óriási méretű kiaknázatlan processzorteljesítmény várja, hogy feladatot kapjon.

És jött a SETI...

Igen ötletes és hatékony megoldás született a "piaci egyensúly" megteremtésére az előző évezred utolsó éveiben: az internetalapú elosztott számítási projektek. Persze ezelőtt is voltak hasonló próbálkozások, de ekkor vált tömegesen elterjedtté az eljárás, méghozzá az azóta is nagy sikerrel futó SETI@home (Search for Extraterrestrial Intelligence@Home, Kutatás a Földön kívüli intelligencia után otthon) projekt révén. Ennek keretében otthoni vagy irodai, internetre kötött számítógépek tízezrei dolgoznak közösen egyetlen probléma megoldásán, nevezetesen az arecibói csillagászati rádióteleszkóp által vett, a világűrből származó rádiójelek analizálásán.

Az elv igen egyszerű: a csillagászati kutatásokkal is foglalkozó egyetemnek (Berkeley) egyszerűen nem volt elegendő számítási kapacitása a teleszkóp által vett rádiójelek kiértékelésére. Azonban, mint láttuk, az internet által összekötött számítógépek százezreinek van felesleges, ki nem használt erőforrása. Innentől kezdve már csak az volt hátra, hogy rávegyék valahogyan a felhasználókat, telepítsék azt a programot, amely majd a feladat kis részeit feldolgozva hozzájárul egy közösen létrehozott, hatalmas virtuális szuperszámítógép megalkotásához.
A meggyőzés egyik lehetséges módja a pénzbeli támogatás lehetett volna, de mivel éppen ennek híján veszik igénybe különböző szervezetek az elosztott internetes projekteket, ez nem nagyon jöhetett szóba. Így maradt a hangzatos cél és a szemet gyönyörködtető programfelület. A felhasználók jelentős része boldogan telepít egy kisebb programot, ha tudja, hogy ezzel hozzájárulhat az emberiség és az idegen civilizációk kapcsolatteremtéséhez. Ha ezt megfejeljük egy látványos, tudományosnak tűnő, ám a laikusok számára is érthető kezelőfelülettel, a siker garantált. Olyannyira, hogy az öt évvel ezelőtt indult SETI@Home-nak az első hónapok után rendszeresen gondjai akadtak, hiszen olyan sokan telepítették az alkalmazást (amely egyben látványos képernyővédő is), hogy a központi szerverek nem bírták a terhelést.

Gondok, bajok

Meg kell jegyezni, hogy bármennyire elosztott is egy projekt, minden esetben a központi szerverrendszer osztja ki az előzetesen kis részekre bontott feladatokat, majd összesíti az eredményeket. Ez komoly pénzügyi hátteret és nagyarányú programfejlesztői tevékenységet feltételez. Bármily nagy is azonban a hajlandóság az együttműködésre mindkét fél részéről, ha a megoldandó probléma jellege olyan, hogy a számítási algoritmus nem párhuzamosítható vagy nem egyszerűsíthető - mint a SETI esetében, ahol sok ezer mintán ugyanazokat a műveleteket kell elvégezni -, akkor a terv meghiúsulhat. Vannak ugyanis olyan feladatok, amelyek olyannyira egymásra épülő és nem ismétlődő számítási lépésekből állnak, hogy nem lehet őket előzetesen több darabra vágni, hiszen amíg az egyik részfeladattal nem végeztünk, a másodikat nem kezdhetjük el, az alapadatok híján. Így persze hiába osztjuk szét több processzor között a számításokat, ha mindig csak egyetlen dolgozhat az éppen aktuális adatokkal.

Az időjárás-előrejelzés nehézségei

Tipikusan ilyenek az időjárás-előrejelzési számítások. Ezek során a vizsgált földrajzi terület térképét kisebb (maximum néhány négyzetkilométer) négyzetekre osztják, és mindegyikben figyelemmel kísérik a különböző paraméterek - a légnyomás, a hőmérséklet, a páratartalom, a felhőtakaró stb. - értékeit. Pár perces lépésközökkel időpontról időpontra kiszámítják, hogy hogyan fog alakulni a következő pár nap időjárása. De az egyes cellák kiszámításának a feladata nem osztható ki külön PC-k között, mert minden egyes időbeli lépésnél figyelembe kell venni a szomszédos területek aktuális paramétereit is, amelyek szintén folyamatosan változnak, ennélfogva közölni kell őket az összes környező cellát kiszámító processzorral. Ez akkora kommunikációs teljesítményt igényel, hogy egyáltalán nem oldható meg az interneten keresztül, hanem csak szorosan csatolt multiprocesszoros környezetben.

Az is előfordulhat, hogy párhuzamosítható ugyan a feladat, ám az egyes részeket kiszámító gépek között hatalmas mennyiségű információnak kell áramolnia az egymást követő lépések között. Ez szintén megnehezíti, hogy a lassú, esetleg nem is állandó internetkapcsolattal rendelkező otthoni vagy irodai PC-k részt vegyenek a feladatok megoldásában.

Tehát kizárólag jól párhuzamosítható, viszonylag csekély adatforgalommal járó számítások jöhetnek csak szóba mint internetes elosztott projektek. Mint látni fogjuk, szerencsére ebből a viszonylag szűk körből is rengeteg érdekes és hasznos feladat kerülhet ki az "unatkozó" processzorok számára.