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 |