Freigeben über


MPI_Ssend-Funktion

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

Syntax

int MPIAPI MPI_Ssend(
  _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_SSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR

Hinweise

Diese Funktion ist nicht lokal. Der erfolgreiche Abschluss des Sendevorgangs hängt vom Vorkommen einer übereinstimmenden Empfangsfunktion ab.

Diese Funktion kann unabhängig davon aufgerufen werden, ob ein übereinstimmend empfangener Empfang gepostet wird. Die Send-Funktion wird jedoch nur erfolgreich abgeschlossen, wenn ein übereinstimmendes Empfangs gesendet wird und der Empfangsvorgang gestartet wurde, um die Nachricht zu empfangen. Daher gibt der Abschluss eines synchronen Sendens nicht nur an, dass der Sendepuffer wiederverwendet werden kann, sondern auch, dass der empfangende Prozess mit der Ausführung des übereinstimmenden Empfangsvorgangs begonnen hat.

Wenn sowohl Sende- als auch Empfangsvorgänge Vorgänge blockieren, bietet der synchrone Modus synchrone Kommunikationssemantik. eine Kommunikation wird an beiden Enden erst abgeschlossen, wenn die Sende- und Empfangsprozesse abgeschlossen sind.

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_Rsend

MPI_Recv