Freigeben über


MPI_Bcast-Funktion

Überträgt Daten von einem Mitglied einer Gruppe an alle Mitglieder der Gruppe.

Syntax

int MPIAPI MPI_Bcast(
  _Inout_  void        *buffer,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _In_    int          root,
  _In_    MPI_Comm     comm
);

Parameter

  • Puffer [in, out]
    Der Zeiger auf den Datenpuffer. Für den Prozess, der durch den Root-Parameter angegeben wird, enthält der Puffer die Daten, die übertragen werden sollen. Bei allen anderen Prozessen im Communicator, der durch den comm-Parameter angegeben wird, empfängt der Puffer die Vom Stammprozess übertragenen Daten.

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

  • Datentyp [in]
    Der MPI-Datentyp der Elemente im Sendepuffer.

  • root [in]
    Der Rang des Prozesses, der die Daten sendet.

  • comm [in]
    Das MPI_Comm Communicatorhandle.

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_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
        <type> BUFFER(*)  
        INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR

Hinweise

Die Typsignatur, wie in den Parametern count und datatype für jeden Prozess angegeben, muss gleich der Typsignatur im Stamm sein. Diese Anforderung impliziert, dass die gesendete Datenmenge gleich dem empfangenen Betrag sein muss, und zwar paarweise zwischen jedem Prozess und dem Stamm. MPI_Bcast und alle anderen kollektiven Datenverschiebungsroutinen machen diese Einschränkung vor. Unterschiedliche Typzuordnungen zwischen Sender und Empfänger sind weiterhin zulässig.

Wenn der comm-Parameter auf einen Intrakommunikationsleiter verweist, sendet die funktion MPI_Bcast eine Nachricht aus dem angegebenen Prozess an alle Prozesse der Gruppe, die sich selbst enthält. Sie wird von allen Mitgliedern der Gruppe aufgerufen, die dieselben Parameter verwenden. Bei der Rückgabe wird der Inhalt des Stammpuffers in alle anderen Prozesse kopiert.

Wenn der comm-Parameter auf einen Intercommunicator verweist, umfasst der Aufruf alle Prozesse im Intercommunicator, jedoch mit einer Gruppe, Gruppe A, die den Stammprozess definiert. Alle Prozesse in der anderen Gruppe, Gruppe B, legen den gleichen Wert im Stammparameter fest, d. h. den Rang des Stammprozesses in Gruppe A. Der Stammprozess legt den Wert MPI_ROOT im Stammparameter fest. Alle anderen Prozesse in Gruppe A legen den Wert MPI_PROC_NULL im Stammparameter fest. Daten werden vom Stammprozess an alle Prozesse in Gruppe B übertragen. Die Pufferparameter der Prozesse in Gruppe B müssen mit dem Pufferparameter des Stammprozesses konsistent sein.

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-Kollektive Funktionen

MPI_Datatype