Condividi tramite


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

Vedi anche

Funzioni collettive MPI

MPI_Datatype