Newsgroup: it.comp.os.dibattiti
Titolo: distribuire il calcolo su piu' pc

Se io avessi un filmato da comprimere, esiste un modo per distribuire il 
calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ??? 

 calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ??? 
Un cluster di pc in rete.
bye G.L.

 
credo di si ma dipende soprattutto dall'applicazione

> credo di si ma dipende soprattutto dall'applicazione
quello che avrei intenzione di fare, e' ridurre i tempi di compressione dei 
video in divx.
Sara' banale....ma se riuscissi anche a dimezzare i tempi, ne sarei felice!!

> Un cluster di pc in rete.
come farlo???
quale programma???
quale sistema operativo?? 


The difference between stupidity and genius is that genius has its 
limits. (A. Einstein)

Asgard ha scritto:

beh c'è una marea di possibilità, cerca MPI, PVM, beowulf etc etc
imho ti conviene lasciar stare perché ti richiederebbe più fatica a 
mettere su il tutto che a comprimere il filmato ;)

 calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ???
http://www.apple.com/server/macosx/features/xgrid.html
 

 dalla codifica utilizzata.
Piu` che il calcolo direi l'algoritmo. 
A occhio e croce direi che la compressione di un divx non sia COSI`
parallelizzabile, anzi, se non erro e` una delle applicazioni meno
influenzate da parallelismo e assolutamente affamate di frequenza bruta
e istruzioni SIMD (questo sicuro).
E in effetti basta conoscere 3 o 4 algoritmi di compressione per vedere
che sono difficilmente parallelizzabili (non che sia impossibile).
Purtroppo la compressione e` una brutta bestia e per farla sei
dipendente dal contesto del filmato. 
Prendiamo ad esempio la codifica mpeg2:
ti tocca guardare i frame I, P e B. Per individuare i frame I ti tocca
controllare le scene e vedere quali hanno grossi stacchi dalla
precedente (cambi di scena/luce o simili) oppure ogni sequenza di P e B
piazzi una I. Quindi devi raccordare le P a seconda della variazione di
macroblocchi di pixel nel frame (calcolati con vettori di differenza) e
riportare le variazioni in frame B.
Nel formato europeo la sequenza e` circa:
IBBPBBPBBI
(se non ricordo male)
Il punto e` che quando hai individuato il punto in cui potresti mandare
la compressione ad altri hai anche gia` compresso, e quindi non serve
spedire a nessuno per fare il calcolo.
Un po` come avviene per le immagini Jpeg.
Puoi pero` parallelizzare piu` compressioni.
-- 
Valentino Volonghi aka Dialtone
Now Running MacOSX 10.4
Blog: 
http://vvolonghi.blogspot.com
http://weever.berlios.de

 calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ???
Questa potrebbe essere una soluzione (mai provata personalmente però in
questa configurazione)
http://www.exit1.org/dvdrip/doc/cluster.cipp
-- 
Vide
"To emulate flesh machines I am learning" (Nevermore)
NP: Nulla

 Puoi pero` parallelizzare piu` compressioni.
Infatti pensavo di spezzare il filmato in piu' parti, e darli singolarmente 
ad ogni pc...
non il miglior algoritmo possibile ma almeno sara' Tempo/numero di pc


interessante .....lo leggo...grazie



Poi li devi riunire pero`, altrimenti e` un rip non tanto bello ;)


 calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ??? 
Una grid di computer farebbe al caso tuo
-- 
Davide Cittaro
Drop WINDOWS if you want to reply

 na grid di computer farebbe al caso tuo
Un cluster con mosix/openmosix e` molto ma molto ma molto piu` facile 
se e` multiprocesso.


 se e` multiprocesso.
Ma openmosix funziona solo su linux, e se decidessi di usare linux
scaricherei Oscar e metterei il cluster con MPI/PVM.
Le grid sono molto flessibili, giusto in questi giorni sto provando sun
grid engine (proprietario) e mi sembra ben funzionante e facilmente
configurabile.
d


 d
Ci puoi mettere pure condor, xgrid e globus... ma pe' na cazzata del 
genere gia` e` troppo mpi/pvm :) --- tanto piu` che deve scrivere lui i 
programmi se usa mpi... che usi un buon editor video con possibilita` 
di batch jobs...


 calcolo fra 2,3 o piu' pc, come se fosse una specie di Dual Core ???
Una volta ho provato openmosix con il mio Athlon 2200 e un Duron 800;
in sostanza devi patchare il kernel (alcuni kernel precompilati supportano
giā openmosix) e installare il demone e una serie di applicativi (grafici)
che ti permettono di monitorare il cluster, nonchč editare un semplice file
di configurazione. Questo per comprimere un video in DivX; una volta
lanciato mencoder ho semplicemente notato che il processo
non migrava (automaticamente) dall'Athlon al Duron, ma rimaneva lė...
Non ho mai approfondito la questione, ma la prova ha avuto pių successo
provando una codifica MPEG2 del tipo:
lav2yuv RAPP*.avi | yuvscaler -M BICUBIC -O SVCD  | mpeg2enc -f 4  -a 2 -B
128 -M 2 -q 3 -b 1770 -I 0 -o xax.mpg
insomma una "catena" di processi riesce a essere gestita da openmosix,
evidentemente un singolo processo no.

 evidentemente un singolo processo no.
mencoder per design e' monotask e monothread. quindi non puo' essere
parallelizzato.