Sincronizzazione
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).