funzione MPI_Bcast
Trasmette i dati da un membro di un gruppo a tutti i membri del gruppo.
Sintassi
int MPIAPI MPI_Bcast(
_Inout_ void *buffer,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ int root,
_In_ MPI_Comm comm
);
Parametri
buffer [in, out]
Puntatore al buffer dei dati. Nel processo specificato dal parametro radice , il buffer contiene i dati da trasmettere. In tutti gli altri processi nel comunicatore specificato dal parametro comm , il buffer riceve i dati trasmessi dal processo radice.conteggio [in]
Numero di elementi di dati nel buffer. Se il parametro count è zero, la parte dei dati del messaggio è vuota.datatype [in]
Tipo di dati MPI degli elementi nel buffer di invio.radice [in]
Classificazione del processo che invia i dati.comm [in]
Handle del comunicatore MPI_Comm.
Valore restituito
Restituisce MPI_SUCCESS sull'esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro IERROR .
Fortran
MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR
Commenti
La firma del tipo come specificato dai parametri conteggio e tipo di dati in ogni processo deve essere uguale alla firma del tipo nella radice. Questo requisito implica che la quantità di dati inviati deve essere uguale alla quantità ricevuta, a livello di coppia tra ogni processo e la radice. MPI_Bcast e tutte le altre routine collettive di movimento dei dati rendono questa restrizione. Le mappe dei tipi distinti tra mittente e ricevitore sono ancora consentite.
Se il parametro comm fa riferimento a un intracommunicator, la funzione MPI_Bcast trasmette un messaggio dal processo specificato a tutti i processi del gruppo che include se stesso. Viene chiamato da tutti i membri del gruppo che usano gli stessi parametri. In caso contrario, il contenuto del buffer radice viene copiato in tutti gli altri processi.
Se il parametro comm fa riferimento a un intercommunicator, la chiamata comporta tutti i processi nell'intercommunicator, ma con un gruppo, un gruppo A, che definisce il processo radice. Tutti i processi nell'altro gruppo, gruppo B, impostano lo stesso valore nel parametro radice , ovvero il rango del processo radice nel gruppo A. Il processo radice imposta il valore MPI_ROOT nel parametro radice . Tutti gli altri processi nel gruppo A impostano il valore MPI_PROC_NULL nel parametro radice . I dati vengono trasmessi dal processo radice a tutti i processi nel gruppo B. I parametri del buffer dei processi nel gruppo B devono essere coerenti con il parametro buffer del processo radice.
Requisiti
Prodotto |
Pacchetto ridistribuibile HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o HPC Pack 2008 Utilità client |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |