Dualprocesorovy server a linux
Michal Ludvig
michal-linux na logix.cz
Čtvrtek Duben 4 11:41:05 CEST 2002
Milan Roubal wrote:
> Otazku kterou mam je - jak je to v linuxu s distribuovanymy vypocty?
> Je na to nutne programy specialne pripravovat, je to
> slozite/jednoduche?
To zalezi na metode distribuovani. Bud pouzijete nejaky klasicky
vicevlaknovy/viceprocesovy program, ktery neco pocita, nebo vyuzijete
PVM (nebo MPI - ale o tom moc nevim) a program napisete primo s podporou
pro PVM.
V prvnim pripade muzete za urcitych podminek s uspechem vyuzit Mosix. Ty
podminky jsou takove, ze proces nesmi byt vicevlaknovy, nemel by delat
nic moc jineho nez pocitat (takze sahani na disk nebo vypisovani spousty
hlasek neni dobry napad) a mel by pocitat relativne dlouho. Mosix docela
mohutne komunikuje pres sit (presouva cele procesy vcetne jejich pameti
a ma i celkem vysokou sitovou rezii), takze gigabit je pomerne vhodny.
Jeste o neco lepsi je treba SCI, nebo Myrinet sit (oba jsou taky kolem
1Gb, ale s nizsi latenci a vetsi propustnosti). Neco malo si o Mosixu
mezete pracist na http://www.root.cz/clanek.phtml?id=844
Pokud se rozhodnete pro PVM, tak bude vypocet probihat tak, ze na vsech
uzlech se skrz pvm-deamona spusti nejaky ten vas pocitaci program a pres
definovane pvm rozhrani z hlavniho uzlu dostane urcitou porci svych
dat, prechrousta je a posle zpatky. Hlavni vyhoda oproti mosixu je ta,
ze zde necestuji cele procesy, ale pouze data. Nevyhoda je takova, ze
aplikace musi byt pro PVM pripravena a musi sama vedet jak nejlepe
rozhazovat data po uzlech.
Pokud tu aplikaci budete psat sami, tak myslim, ze s PVM muzete
dosahnout lepsich vysledku. Pro mosix to ale zase muzete mit rychleji
napsane - proste 20x fork() a "ono se to nejak spocita" :-)
> jak je to s vypoctem na jedne ctyrprocesorove masine? musi se vypocet
> prizpusobit?
Vypocet musi probihat zaroven ve vice vlaknech nebo procesech. Jinak 4
procesory nevyuzijete. Kdyz to dobre napisete, tak programu bude uplne
fuk, jestli bezi na 4CPU masine nebo na 4 uzlovem mosixim clusteru.
Samozrejme vam nikdo nebrani kombinovat oba pristupy: Skrz PVM
distribuovat data a kazdy SMP uzel je muze v nekolika vlaknech pocitat.
Ale to vsechno hodne zalezi na vasem zameru a na moznostech
upravovat/psat tu aplikaci.
Michal Ludvig
Další informace o konferenci Linux