Syntax:
Das Ende jeder einzelnen Kommunikation kann mit MPI_Test oder MPI_Wait oder den davon abgleiteten Funktionen getestet werden. Dabei wird das Request-Objekt nicht zerstört, so daß es mehrfach verwendet werden kann. Man kann jederzeit MPI_Request_free rufen, doch das Request-Objekt wird erst dann deallociert, wenn es wieder inaktiv ist (d.h., wenn der damit assoziierte Kommunikationsvorgang beendet ist).
Aufruf:
#include "mpi.h"
int count;
...
MPI_Request array_of_requests[N];
MPI_Status stat[N];
...
for (i=0; i<N; i++) {
MPI_Send_init(buf, count, MPI_INT, i+1, i, comm, &array_of_requests[i]);
}
while (again) {
... Sendepuffer aktualisieren ...
MPI_Startall(N, array_of_requests);
...
MPI_Waitall(N, array_of_requests, stat);
...
}
...
for (i=0; i<N; i++) {
MPI_Request_free(&array_of_requests[i]);
}
...