Compartilhar via


função MPI_Bcast

Transmite dados de um membro de um grupo para todos os membros do grupo.

Sintaxe

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

Parâmetros

  • buffer [in, out]
    O ponteiro para o buffer de dados. No processo especificado pelo parâmetro raiz , o buffer contém os dados a serem difundidos. Em todos os outros processos no comunicador especificados pelo parâmetro comm , o buffer recebe os dados transmitidos pelo processo raiz.

  • count [in]
    O número de elementos de dados no buffer. Se o parâmetro count for zero, a parte de dados da mensagem estará vazia.

  • datatype [in]
    O tipo de dados MPI dos elementos no buffer de envio.

  • raiz [in]
    A classificação do processo que está enviando os dados.

  • comm [in]
    O identificador MPI_Comm comunicador.

Retornar valor

Retorna MPI_SUCCESS com êxito. Caso contrário, o valor retornado será um código de erro.

No Fortran, o valor retornado é armazenado no parâmetro IERROR .

Fortran

    MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
        <type> BUFFER(*)  
        INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR

Comentários

A assinatura de tipo conforme especificado pelos parâmetros count e datatype em cada processo deve ser igual à assinatura de tipo na raiz. Esse requisito implica que a quantidade de dados enviados deve ser igual ao valor recebido, em termos de par entre cada processo e a raiz. MPI_Bcast e todas as outras rotinas coletivas de movimentação de dados fazem essa restrição. Mapas de tipo distintos entre remetente e receptor ainda são permitidos.

Se o parâmetro comm fizer referência a um intracomunhador, a função MPI_Bcast transmitirá uma mensagem do processo especificado para todos os processos do grupo que inclui a si mesmo. Ele é chamado por todos os membros do grupo que estão usando os mesmos parâmetros. No retorno, o conteúdo do buffer raiz é copiado para todos os outros processos.

Se o parâmetro comm fizer referência a um intercomunhador, a chamada envolverá todos os processos no intercomuniciador, mas com um grupo, o grupo A, que define o processo raiz. Todos os processos no outro grupo, grupo B, definem o mesmo valor no parâmetro raiz , ou seja, a classificação do processo raiz no grupo A. O processo raiz define o valor MPI_ROOT no parâmetro raiz . Todos os outros processos no grupo A definem o valor MPI_PROC_NULL no parâmetro raiz . Os dados são transmitidos do processo raiz para todos os processos no grupo B. Os parâmetros de buffer dos processos no grupo B devem ser consistentes com o parâmetro buffer do processo raiz.

Requisitos

Produto

Pacote Redistribuível do HPC Pack 2012 MS-MPI, Pacote Redistribuível HPC Pack 2008 R2 MS-MPI, Pacote Redistribuível do HPC Pack 2008 MS-MPI ou Utilitários de Cliente HPC Pack 2008

parâmetro

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções coletivas de MPI

MPI_Datatype