Syntax:
Input Parameter:
Anmerkung:
Sinn und Zweck dieser Funktion besteht darin, bei wiederkehrenden Sendeoperationen mit gleicher Parameterliste Overhead einzusparen. Das eigentliche Senden wird mit MPI_Start gestartet. Erst nach Beendigung der Sendeoperation dürfen die Daten im Sendepuffer modifiziert werden.
Aufruf:
#include "mpi.h"
int count, dest, tag, n, i, dummysize;
void *buf, *dummy;
MPI_Datatype datatype;
MPI_Comm comm;
MPI_Request request;
MPI_Status status;
...
/* Pufferspeicher anfordern */
MPI_Pack_size(count, datatype, comm, &dummysize);
dummysize=dummysize + MPI_BSEND_OVERHEAD;
dummy=(void *)malloc(dummysize*sizeof(void));
MPI_Buffer_attach(dummy, dummysize);
MPI_Bsend_init(buf, count, datatype, dest, tag, comm, &request);
for (i=0; i<n; i++) {
... Puffer aktualisieren ...
MPI_Start(&request);
...
MPI_Wait(&request, &status);
...
}
MPI_Request_free(&request);
MPI_Buffer_detach(&dummy, &dummysize);
...