Funktionsübersicht
. .
Nicht-blockierende Kommunikation
Hilfesystem für den Message Passing Interface Standard MPI
MPI_Waitany
Wartet, bis einer der Kommunikationsvorgänge, deren Anforderungen im Request-Array
übergeben wurden, beendet ist
Syntax:
MPI_Waitany( count, array_of_requests, index, status )
Input Parameter
count - Größe des übergebenen Feldes (integer)
array_of_requests - Kommunikationsanforderungen (array of handles)
InOut Parameter:
index - Index des handles im array_of_requests für die Operation, welche
beendet ist (integer zwischen 0 und count-1)
status - enthält den Rückkehrstatus der beendeten Operation (handle)
Bei Empfangsoperationen kann man daraus Sender, tag und die Anzahl der
empfangenen Elemente ermitteln.
Anmerkung:
Falls array_of_requests keine oder nur inaktive Request-Objekte enthält, kehrt die
Funktion sofort mit index=MPI_UNDEFINED zurück.
Aufruf:
#include "mpi.h"
#define N 32
...
int index;
MPI_Request array_of_requests[N];
MPI_Status status;
...
for (i=0; i<N; i++) {
MPI_Send_init(buf, bufsize, MPI_INT, i+1, i, comm, &array_of_requests[i]);
}
...
MPI_Startall(N, array_of_requests);
...
MPI_Waitany(N, array_of_requests, &index, &status);
...
for (i=0; i<N; i++) {
MPI_Request_free(&array_of_requests[i]);
}
...