Sincronizzazione

Back to    Contents

Previous :  Broadcast Round      Next : Reduction con double     Up to : Benchmark collettivi   


Questo metodo misura il tempo necessario per sincronizzare un gruppo di processi (tipicamente tutti). Cioe' si misura l'attesa media prima che tutti siano arrivati allo stesso punto di sincronizzazione in un programma MPI e siano pronti a proseguire l'esecuzione. Anche qui il test consiste nel ripetere un certo numero (reps) di  sincronizzazioni e misurarne il tempo.
In MPI questo viene realizzato tramite la primitiva MPI_Barrier.

Il nucleo del test e' il seguente :

MPI_Barrier(MPI_COMM_WORLD );
t0=MPI_Wtime();
for (i=0; i<reps; i++) {
    MPI_Barrier(MPI_COMM_WORLD );
    }
t1=MPI_Wtime();
MPI_Barrier(MPI_COMM_WORLD );
time = t1-t0;



reps e' per default 50 e puo' essere cambiato dall'utente.


Qui non e' presente parallelismo di esecuzione, tutti i processi sono sincrinizzati prefettamente, pero' sarà presente una certa attesa attiva (per sapere quando tutti gli altri sono arrivati) che penalizzerà maggiormente MPICH-G2 (I Risultati, Conclusioni).

Previous : Broadcast Round     Next :  Reduction con double      Up to : Benchmark collettivi   

Back to Contents