Partilhar 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

  • memória intermédia [dentro, fora]
    O ponteiro para a memória intermédia de dados. No processo especificado pelo parâmetro raiz , a memória intermédia contém os dados a serem transmitidos. Em todos os outros processos no comunicador especificados pelo parâmetro de comunicação , a memória intermédia recebe os dados transmitidos pelo processo de raiz.

  • contar [em]
    O número de elementos de dados na memória intermédia. Se o parâmetro de contagem for zero, a parte de dados da mensagem estará vazia.

  • tipo de dados [em]
    O tipo de dados MPI dos elementos na memória intermédia de envio.

  • raiz [em]
    A classificação do processo que está a enviar os dados.

  • vírgula [em]
    O MPI_Comm identificador do comunicador.

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é armazenado no parâmetro IERROR .

Fortran

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

Observações

A assinatura de tipo, conforme especificado pelos parâmetros de contagem e tipo de dados em cada processo, tem de ser igual à assinatura do tipo na raiz. Este requisito implica que a quantidade de dados enviados tem de ser igual à quantidade recebida, em termos de pares entre cada processo e a raiz. MPI_Bcast e todas as outras rotinas coletivas de movimento de dados fazem esta restrição. Ainda são permitidos mapas de tipos distintos entre o remetente e o recetor.

Se o parâmetro de comunicação fizer referência a um intracomunicador, a função MPI_Bcast transmite uma mensagem do processo especificado para todos os processos do grupo que inclui o próprio. É chamado por todos os membros do grupo que estão a utilizar os mesmos parâmetros. Na devolução, o conteúdo da memória intermédia raiz é copiado para todos os outros processos.

Se o parâmetro de comunicação fizer referência a um intercomunicador, a chamada envolve todos os processos no intercomunicador, mas com um grupo, grupo A, que define o processo de raiz. Todos os processos no outro grupo, grupo B, definem o mesmo valor no parâmetro raiz , ou seja, a classificação do processo de raiz no grupo A. O processo de 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 de raiz para todos os processos no grupo B. Os parâmetros de memória intermédia dos processos no grupo B têm de ser consistentes com o parâmetro de memória intermédia do processo de raiz.

Requisitos

Produto

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package ou HPC Pack 2008 Client Utilities

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções Coletivas de MPI

MPI_Datatype