funktionen MPI_Bcast
Sänder data från en medlem i en grupp till alla medlemmar i gruppen.
Syntax
int MPIAPI MPI_Bcast(
_Inout_ void *buffer,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ int root,
_In_ MPI_Comm comm
);
Parametrar
buffert [in, ut]
Pekaren till databufferten. På den process som anges av rotparametern innehåller bufferten de data som ska sändas. På alla andra processer i kommunikatören som anges av comm-parametern tar bufferten emot data som sänds av rotprocessen.count [in]
Antalet dataelement i bufferten. Om parametern count är noll är datadelen av meddelandet tom.datatype [in]
MPI-datatypen för elementen i sändningsbufferten.root [in]
Rangordningen för den process som skickar data.comm [in]
Den MPI_Comm kommunikationshandtaget.
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern IERROR .
Fortran
MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR
Kommentarer
Typsignaturen som anges av parametrarna count och datatype för varje process måste vara lika med typsignaturen i roten. Det här kravet innebär att mängden data som skickas måste vara lika med den mängd som tas emot, parvis mellan varje process och roten. MPI_Bcast och alla andra kollektiva rutiner för dataflytt gör den här begränsningen. Distinkta typmappningar mellan avsändare och mottagare tillåts fortfarande.
Om comm-parametern refererar till en intracommunicator sänder MPI_Bcast-funktionen ett meddelande från den angivna processen till alla processer i gruppen som innehåller sig själv. Den anropas av alla medlemmar i gruppen som använder samma parametrar. Vid retur kopieras innehållet i rotbufferten till alla andra processer.
Om parametern comm refererar till en intercommunicator omfattar anropet alla processer i intercommunicator, men med en grupp, grupp A, som definierar rotprocessen. Alla processer i den andra gruppen, grupp B, anger samma värde i rotparametern, d.v.s. rotprocessens rangordning i grupp A. Rotprocessen anger värdet MPI_ROOT i rotparametern. Alla andra processer i grupp A anger värdet MPI_PROC_NULL i rotparametern . Data sänds från rotprocessen till alla processer i grupp B. Buffertparametrarna för processerna i grupp B måste vara konsekventa med buffertparametern för rotprocessen.
Krav
Produkt |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package eller HPC Pack 2008 Client Utilities |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |