Freigeben über


MPI_Rsend-Funktion

Führt einen Sendevorgang im bereiten Modus aus und gibt zurück, wenn der Sendepuffer sicher wiederverwendet werden kann.

Syntax

int MPIAPI MPI_Rsend(
  _In_opt_ void         *buf,
           int          count,
           MPI_Datatype datatype,
           int          dest,
           int          tag,
           MPI_Comm     comm
);

Parameter

  • buf [in, optional]
    Ein Zeiger auf den Puffer, der die zu sendenden Daten enthält.

  • count
    Die Anzahl der Elemente im Puffer. Wenn der Datenteil der Nachricht leer ist, legen Sie den count-Parameter auf 0 fest.

  • datatype
    Der Datentyp der Elemente im Puffer.

  • Dest
    Der Rang des Zielprozesses innerhalb des Communicators, der durch den comm-Parameter angegeben wird.

  • tag
    Das Nachrichtentag, mit dem verschiedene Nachrichtentypen unterschieden werden können.

  • comm
    Das Handle für den Communicator.

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

Fortran

    MPI_RSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR

Hinweise

Diese Funktion ist nicht lokal. Diese Funktion gibt zurück, sobald der Sendepuffer wiederverwendet werden kann, und hängt nicht von der status eines übereinstimmenden Empfangsvorgangs ab. Der erfolgreiche Abschluss des gesamten Sendevorgangs hängt jedoch vom Vorhandensein eines übereinstimmenden Empfangsvorgangs ab.

Diese Funktion kann nur aufgerufen werden, wenn der übereinstimmende Empfangsvorgang bereits bereitgestellt wurde. Andernfalls gibt die Funktion einen Fehler zurück, und das Ergebnis ist nicht definiert. Auf einigen Systemen entfällt durch diese Anforderung ein Teil des Handshakings, das in anderen Modi verwendet wird, und kann die Leistung im Vergleich zu standardbasierten oder synchronen Sendevorgängen verbessern.

Die funktion MPI_Rsend verfügt über dieselbe Semantik wie die funktionen MPI_Send und MPI_Ssend , benachrichtigt das System jedoch darüber, dass bereits ein übereinstimmend empfangener Empfang bereitgestellt wurde. Diese Informationen können einen gewissen Mehraufwand sparen. Daher könnte in einem richtigen Programm ein bereiter Sendevorgang durch eine Standardsendung ersetzt werden, ohne dass sich auf das Verhalten des Programms außer der Leistung auswirkt.

Anforderungen

Produkt

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package oder HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

MPI-Punkt-zu-Punkt-Funktionen

MPI_Send

MPI_Bsend

MPI_Ssend

MPI_Recv