Freigeben über


MPI_Ibcast-Funktion

Sendet eine Nachricht aus dem Prozess mit rang "root" an alle anderen Prozesse des Communicators auf nicht blockierende Weise.

Syntax

int MPIAPI MPI_Ibcast(
  _Inout_  void        *buffer,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _In_    int          root,
  _In_    MPI_Comm     comm,
  _Out_   MPI_Request  *request
);

Parameter

  • Puffer [in, out]
    Der Zeiger auf den Datenpuffer. Bei dem prozess, der durch den Root Parameter angegeben wird, enthält der Puffer die zu übertragenden Daten. Bei allen anderen Prozessen im Communicator, die vom comm Parameter angegeben wird, empfängt der Puffer die Datenübertragung durch den Stammprozess. Puffer besteht aus Anzahl aufeinander folgenden Elementen der MPI_Datatype, die durch den Datentyp Handle angegeben sind. Die Länge der Nachricht wird in Bezug auf die Anzahl der Elemente angegeben, nicht die Anzahl der Bytes.

  • anzahl [in]
    Die Anzahl der Datenelemente im Puffer. Wenn die anzahl Parameter null ist, ist der Datenteil der Nachricht leer.

  • Datentyp [in]
    Das MPI_Datatype Handle, das den Datentyp jedes Elements in Puffer-darstellt.

  • Stamm- [in]
    Der Rang des Prozesses innerhalb des MPI_Commcomm sendenden Puffers.

  • comm [in]
    Das MPI_Comm Communicator-Handle.

  • Anforderung [out]
    MPI_Request Handle, das den Kommunikationsvorgang darstellt..

Rückgabewert

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

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

Fortran

    MPI_IBCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR)
        <type> BUFFER(*)  
        INTEGER COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR

Bemerkungen

Ein nicht blockierende Anruf initiiert einen kollektiven Übertragungsvorgang, der in einem separaten Abschlussaufruf abgeschlossen werden muss. Sobald der Vorgang initiiert wurde, kann der Vorgang unabhängig von jeder Berechnung oder anderen Kommunikation an teilnehmenden Prozessen vorankommen. Auf diese Weise können nicht blockierende Übertragungsvorgänge mögliche Synchronisierungseffekte von Übertragungsvorgängen mindern, indem sie im "Hintergrund" ausgeführt werden.

Alle Abschlussaufrufe (z. B. MPI_Wait) werden für nicht blockierende Übertragungsvorgänge unterstützt.

Anforderungen

Produkt

Microsoft MPI v6

Kopfball

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Siehe auch

MPI Kollektivfunktionen

MPI_Bcast

MPI_Datatype

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome

MPI_Comm