Párhuzamos programok checkpointolása és migrációja klasztereken

Kovács József <smith@sztaki.hu>

MTA SZTAKI


A klasztereken futó nagy számításigényû párhuzamos alkalmazások checkpointolása a processzek állapotterének és a köztük zajló kommunikációnak egy konzisztens állapotban történõ lementését jelenti. Az alkalmazások futtatásakor elengedhetetlen az egyes processzek bizonyos idõközönkénti lementése annak érdekében, hogy a futtató egységek esetleges terhelési viszonyait kiegyenlítsük az egyes processzek áthelyezésével, illetve képesek legyünk az alkalmazást folytatni egy adott futási állapotból megõrizve ezáltal az addig elkészült számítási eredményeket. Ez utóbbi szükséges akkor is, ha a klaszter valamely gépének kiesése az alkalmazás elhalásához vezet. Egy checkpointoló rendszer megépítésekor és használatakor alapvetõ szempont a felhasználói kód, az üzenetközvetítõ alrendszer és az operációs rendszer változatlanul hagyása, azaz a checkpointoló rendszer használhatósága fordított arányban áll az általa megkövetelt változtatások mennyiségével.

Az elosztott checkpointoló rendszernek három alapvetõ problémát kell megoldania. Képesnek kell lennie az alkalmazást alkotó processzek állapotterének, az üzeneteközvetítõ alrendszerben keringõ üzeneteknek és a processzek közötti kapcsolatoknak a lementésére és visszaállítására. Továbbá mindezt oly módon kell tennie, hogy üzenetek ne duplikálódjanak, ne vesszenek el és célba érjenek egy esetleges processz másik futtató egységre történõ áthelyezését követõen is.


A párhuzamos programok checkpointolása egy rendkívül összetett feladat, melynek egy lehetséges megoldása kerül bemutatásra a cikkben. Az itt bemutatott elosztott checkpoint- és migrációs rendszer jelenleg a P-GRADE grafikus alkalmazásfejlesztõi környezetben került megvalósításra.