Funktionsübersicht
. .
Nicht-blockierende Kommunikation
Hilfesystem für den Message Passing Interface Standard MPI
MPI_Isend
Startet eine nicht-blockierende Standard-Sendeoperation
Syntax:
MPI_Isend(buf, count, datatype, dest, tag, comm, request)
Input Parameter:
buf - Anfangsadresse des Sendepuffers
count - Anzahl der Elemente des Sendepuffers (integer,
nichtnegativ)
datatype - Typ der Elemente des Sendepuffers (handle)
dest - Rang des Empfängerprozesses in comm (integer)
tag - message tag zur Unterscheidung verschiedener Nachrichten
(integer);
Ein Kommunikationsvorgang wird durch ein Tripel (Sender, Empfänger, tag)
eindeutig beschrieben.
comm - Kommunikator (handle)
Output Parameter
request - Request-Objekt; wird benötigt, um die Sendeoperation zu
beenden (handle)
Anmerkung:
Das Ende der Sendeoperation kann mit MPI_Wait abgewartet
oder mit MPI_Test getestet werden. Erst nach dem erfolgreichen
Beenden dürfen die Daten im Sendepuffer modifiziert werden.
Aufruf:
#include "mpi.h"
int count;
void *buf;
MPI_Datatype datatype;
MPI_Comm comm;
MPI_Request request;
MPI_Status status;
...
MPI_Isend(buf, count, datatype, 1, 0, comm, &request);
... Berechnung ...
MPI_Wait(&request, &status);
...