Funktionsübersicht
. .
Abgeleitete Datentypen
Hilfesystem für den Message Passing Interface Standard MPI
MPI_Pack
Packt einen Datentyp in einen zusammenhängenden Speicherbereich
Syntax:
MPI_Pack( inbuf, incount, datatype, outbuf, outcount, position, comm )
Input Parameter:
inbuf - Anfangsadresse des Eingabepuffers
incount - Anzahl der Elemente in 'inbuf' (integer)
datatype - Datentyp der Elemente des Eingabepuffers (handle)
outcount - Größe des Ausgabepuffers in Byte (integer)
comm - Kommunikator, in welchem die gepackte Nachricht versendet
werden soll (handle)
Output Parameter:
outbuf - Anfangsadresse des Speicherbereichs, in den die Daten
gepackt wurden
InOut Parameter:
position - als Eingabe: die Position im Ausgabepuffer (in Bytes), von
wo an die Daten untergebracht werden sollen (integer)
als Ausgabe: die Position unmittelbar hinter den Daten (integer)
Anmerkung:
MPI_Pack und MPI_Unpack bieten einerseits
Möglichkeiten zum Entwerfen eigener Kommunikationsbibliotheken, zum anderen
stellen sie Funktionalität zur Verfügung, die anders mit MPI nicht erreicht
werden kann. Z.B. das Empfangen von Nachrichten in mehreren Stücken, wobei
die nächste Empfangsoperation vom Inhalt der vorhergehenden Nachricht abhängt.
Aufruf:
#include "mpi.h"
int incount, outcount, position, dummy;
void *inbuf, *outbuf;
MPI_Datatype datatype;
MPI_Comm comm;
...
dummy=position;
MPI_Pack(inbuf, incount, datatype, outbuf, outcount, &position, comm);
MPI_Send(outbuf, position-dummy, MPI_PACKED, 1, 0, comm);
...