(...la parte iniziale di questo articolo e'
pubblicata nella homepage del BUR del 10/01/2002)
parallelizzare automaticamente il codice
mediante il compilatore, aggiungere direttive OpenMP al codice o inserire call ad una
message passing library. Gli utenti di LF95 Linux v6.1 PRO hanno a disposizione tutte e
tre le alternative, gli utenti di LF95 Linux v6.1 Express dispongono invece del solo terzo
metodo, implementato mediante MPICH - una message passing library a standard MPI
liberamente disponibile.
I cluster di classe Beowulf utilizzano
generalmente il terzo metodo mentre le macchine multiprocessore tradizionali i primi due.
L'obiettivo del parallel programming - s'intende per parallel programming l'insieme delle
tre tecniche sopra descritte - e' quello di risparmiare tempo di esecuzione utilizzando
due o piu' CPU contemporaneamente. |
|
Per esempio un loop DO puo' essere eseguito in parallelo distribuendo meta' delle
iterazioni su di un processore e meta' sull'altro, dimezzando teoricamente i tempi di
esecuzione. In pratica, pero', sfruttare due CPU non vuol dire raddoppiare la velocita' di
esecuzione. Tra le cause che impediscono una diminuzione dei tempi di esecuzione pari ad
1/numero CPU segnaliamo i tempi di inizializzazione e gestione dei threads in piu' di un
processore, la mancanza in molti programmi di grandi array e di loop che vi operino,
programmi ad alta intensita' di I/O invece che ad alta intensita' computazionale.
Cio' nonostante, anche incrementi di performance
del 5 o del 10 percento possono far propendere per l'utilizzo di tecniche di parallel
programming. In generale, quindi, se il codice da compilare utilizza una grande
percentuale del tempo d'esecuzione in loop ad alta intensita' computazionale, LF95 Linux
PRO v6.1 fa la differenza. |