Reduction con double
Questo metodo misura il tempo necessario per sommare tra loro dati double
posseduti da tutti i processi e quindi spedire il risultato a tutti. Come
sempre il test consiste nel ripetere un certo numero (reps) di
queste somme e misurare il tempo impiegato.
In MPI l'operazione di Reduction, con risultato spedito a tutti, viene
realizzata con la primitiva MPI_Allreduction.
Il nucleo del test e' il seguente :
MPI_Barrier(MPI_COMM_WORLD );
t0=MPI_Wtime();
for (i=0; i<reps; i++) {
MPI_Allreduce(lval, work, len, MPI_DOUBLE, MPI_SUM, 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.
Anche con questo test MICH-G2 soffre particolarmente la presenza su una
stessa CPU di piu' processi attivi (almeno con messaggi piccoli) (I Risultati, Conclusioni).