Rad bych upozornil na (IMO) praktictejsi zpusob programovani klastru nez je PVM. Jedna se o projekt OpenMosix a od nej odvozenou distribuci Cluster Knoppix. V tomto klastru neni treba pouzivat zadny zvlastni knihovny, staci ulohu rozdelit na vice procesu. System, potom, rozdeli procesy na jednotlive pocitace, tak jak uzna za vhodne. Napr. kdyz spustite 5x aplikaci s narocnym vypoctem a v siti mate 5 pocitacu, system umisti na kazdy pocitac jeden proces. Jedna se o normalni Linux s patchovanym kernelem, takze programy se o nic nestaraji a dokonce i souborovy system je distribuovany.
Nechci se tady moc angazovat jako chytrak pres paralelni stroje, ale z toho jak to popisujete vyplyva, ze je to stejny pristup. Pouze se pro komunikaci procesu (master/slave z prikladu) nepouziva knihovny, ale systemovych prostredku linuxu. To je prima, ale pouze pokud stavite cluster z linux stroju (PCcek). PVM (a modernejsi MPI) poskytuji tyto sluzby obecne platforme coz, kdyz to myslite opravdu vazne, ma pro vas velke vyhody.
Napr. si predstavte, ze sestavujete paralelni superpocitac ne jako cluster PC ale jako michanici heterogenich prostredi a platforem - typicky maji superpocitacova centra k dispozici nekolik starsich SGI, SUNu, ALPHA stroju a treba i ten PC cluster. Vsechny stroje maji porad nezanedbatelny vypocetni vykon, nehlede na jine zajimave vlastnosti (vektorove procesory atp.), ktere muzete v danem "slave" vyuzit. PVM potom zajistuje komunikaci v takto heterogenim prostredi - jestli si z Architektury superpocitacu dobre vzpominam, dokaze posilat data/vysledky mezi uzly a transparentne pri tom resit endian. Knoppix je super, ale na Originu nebo PowerChalenge asi nepobezi...
Problem rozlozeni ulohy na soubezne procesy zustava.
Souhlasim ze PVM/MPI mohou mit sve vyhody, ale OpenMosix take pouziva spousta organizaci ktere to s klastry "mysli opravdu vazne", napr. NASA, ktera je i hlavni sponzor cele akce. Jeste jsem zapomnel dodat ze CluserKnoppix je bootovatelny z LAN, takze jednotlive PCka nemusi mit HDD, Floppy, CD ani nic podobneho, staci CPU, pamet (nejlepe >= 512MB) a Sitovka, cili pocitac ktery si koupite za cca. 11 tisic (AthlonXP 1800+).
Prominte, nestastnym spojenim "myslite vazne" jsem nechtel bagatelizovat pouziti Mosixu, pouze jsem se prispevkem snazil poukazat na to, ze i PVM muze byt uzitecne, i kdyz uz je trochu postarsi.
Jinak NASA v oblasti HPC pouziva kde co, aby si nakonec implementovali vlastni reseni - mam s tim osobni zkusenost :-)
Delam paralelni programovani asi 3 roky a zkusenosti jsou asi takove:
- paralelni kompilatory - vhodne pro rychou paralelizaci jednoduchych uloh - takze skoro na nic, ale je znat jisty vyvoj k lepsimu
- PVM - podpora heterogennich siti, ale pomale a problem vyvazenosti na heterogennich sitich
- MPI - (zde jsem zustal, takze vim vice) optimalizovane implementace pro ruzne platformy (SGI, IBM SP, ...), zadne problemy s PVM serverem ..., nove verze MPI umi spoustu "high level" rutin pro vektorove operace, a hlavne:
MPI pouziva vetsina paralelnich knihoven pro numericke vypocty
uvitam jine zkusenosti
morf