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 |