Ciao,
lavoro da un po' di tempo con (piccoli) cluster di calcolo e anche con
dei siti grid (LCG)
Gino wrote:
Ciao a tutti.
Come sempre mi scontro con il meccanismo di replay to della lista,
che fa si che quando si risponde la mail venga mandata in privato...
:) Come ho già scritto, io non uso ne OpenMosix, ne MPI (ho esigenze
di clustering un po' particolari), ma credo, in una visione
semplicistica, che la situazione sia più o meno la seguente: Open
Mosix, grossomodo non è altro che una specie di aggiunta al kernel di
ogni macchina del cluster,
Vero, (openmosix...) se non ricordo male è solo per il kernel 2.4
che permette di migrare i processi sulla macchina del cluster con
meno carico di lavoro; si comporta cioè come uno scheduler (nella
visione grid-computing).
Openmosix (e in generale la tecnologia mosix) permette alle macchine
di esser viste come una macchina sola (SSI, single system image) e si
comporta (a dir la verità, molto approssimatamente) come uno scheduler
distribuito (inteso come scheduler del kernel, non come uno scheduler
intenso di norma nei cluster di calcolo)
Per quanto riguarda il grid-computing (almeno nella grid intensa come
da progetto EGEE per l'LCG, ovvero per LHC Computing Grid) openmosix
non viene assolutamente usato (ma quindi andiamo decisamente OT)
Ora non mi ricordo nei dettagli come funzioni e sopratutto, non so
quali aggiunte ha subito nel corso di questi ultimi mesi, ma credo
che in effetti si comporti così.
Openmosix ha anche altre features interessanti, ma che _a mio parere_,
non sono adatte per cluster di calcolo massimi (100+ cpu).
Per quel che riguarda invece MPI credo sia semplicemente una API per
programmare delle applicazioni per il calcolo parallelo, cioè
consente di creare applicazioni atte a funzionare su sistemi
multiprocessore... non so se preveda anche dei meccanismi di
scheduling, come non so se entrambi abbiano un meccanismo di remote
system call o qualcosa di simile... in ogni caso, non capisco perchè
tu voglia tenerli separati!! Apparentemente, per quel poco che ho
letto sulle due tecnologie, sono complementari... eppoi certo che le
puoi tenere separate: basta attivare OpenMosix e non farci girare
sopra una applicazione MPI...
MPI sono delle api (piuttosto complesse nell'implementazione) che
forniscono dei sistemi per far "comunicare" i programmi tra loro in
ambiente di calcolo parallelo (quindi sia tra diverse cpu, sia tra
diversi nodi). Mi spiego meglio: sono ottimizzate allo scopo del
calcolo parallelo e spesso sono anche estremamente ottimizzate per, ad
esempio, sfruttare delle schede a bassissima latenza (mirynet,
infiniband...). Cmq una buona ricerca su google sicuramente sarà più
esplicativa di quello che posso essere io :)
Per quanto riguarda lo scheduler di job, il sistema + usato in
ambiente OS è sicuramente Torque+Maui, che sono essenzialmente le
evoluzioni dell'ormai mitico PBS (anche qui google).
Di norma Mosix e sistemi batch (quindi scheduler +, quando serve, MPI)
sono cluster con tecnologia "concorrente" e non si usano assieme
(anche per problemi legati alle performance... anche qui andremmo
OT++), ma nessuno vieta (ma nessuno nemmeno consiglia...) di
installare entrambi e di usarli di volta in volta in base al tipo di
calcolo che si vuole eseguire.
Cmq la scelta di che sistema usare dipente tantissmio da diverse
variabili quali, a minimo esempio, il "programma" da far girare, il
numero di nodi, etc etc,...
spero di aver bene inteso la situazione e di essere stato utile,
anche se solo alla lontana.
Cmq una quantità di info si trovano su google, anche se ovviamente è
una selva :)
Sperando di non aver portato confusione nella discussione,
Alessio