Distribuovane pocitani v Perlu?
Jan Kasprzak
kas na fi.muni.cz
Pátek Listopad 30 16:56:42 CET 2007
Prijemny patek preji,
mam dotaz ohledne paralelniho pocitani v Perlu: mam problem, ktery by sel
idealne resit na vypocetnim klastru: jde o to, ze data problemu se nevejdou
do pameti jednoho "bezneho" pocitace, a pritom problem je docela dobre
paralelizovatelny. Mel jsem single-threaded prototyp v Perlu, chodil
docela rozumne rychle, nez vytekl z RAM. Ale je navic paralelizovatelny,
takze by mohl chodit n-krat rychleji. No a ted jde o to, ze bych
chtel vedet, jestli existuje nejaky modul, ktery by mi usnadnil
programovani takoveto veci, abych nemusel vsechna ta socketova volani
delat rucne.
Co bych potreboval:
- jeden ridici stroj, n pracovnich uzlu klastru
- nejaka komunikace uzlu s ridicim strojem,
- ale zejmena potrebuju aby kazdy uzel mel otevreny socket s kazdym dalsim,
protoze algoritmus v jiste fazi vyzaduje takovouto komunikaci
kazdeho s kazdym.
- nejaky prikaz pro synchronizaci/setkani ("pockam az vsichni dobehnou sem").
- vetsinou pujde o zasilani malych kousku dat, ale v zaverecne fazi
bude kazdy uzel posilat rekneme az gigabajt dat ven,
cili potrebuju nejak umet poslat (treba) obsah souboru,
aniz by nejaka ta paralelni knihovna se snazila ten obsah
treba zabalit do Perloveho skalaru nebo nedej $deity jeste
nejak dal kodovat. Pokud by v teto fazi byla pouzita sluzba
jadra sendfile(), bylo by to uplne idealni (skutecne pujde
o obsah souboru).
- uzly klastru budou mit stejnou architekturu, stejny OS (Linux), stejnou
verzi jadra, knihoven i Perlu, neni treba nejake kodovani
dat kvuli jine sirce slova nebo jine endianite.
- nepotrebuju uplne resit vsechny mozne vypadky. Moje predstava je ze
vypocet pobezi jako periodicka uloha (rekneme po par minutach)
s tim, ze kdyz uzel v prubehu vypoctu spadne, tak se holt pristi
beh spusti uplne odznovu na mensim poctu stroju.
Co byste doporucili? Parallel::MPI? Parallel::Mpich? Rucni praci
se sockety? Nebo?
Diky,
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Journal: http://www.fi.muni.cz/~kas/blog/ |
>> Rule #1 in kernel programming: don't *ever* think that things actually <<
>> work the way they are documented to work. --Linus Torvalds <<
Další informace o konferenci Perl