Compartilhar via


função MPI_Allreduce

Combina valores de todos os processos e distribui o resultado de volta para todos os processos.

Sintaxe

int MPIAPI MPI_Allreduce(
  _In_opt_  const void         *sendbuf,
  _Out_opt_       void         *recvbuf,
  _In_            int          count,
  _In_            MPI_Datatype datatype,
  _In_            MPI_Op       op,
  _In_            MPI_Comm     comm
);

Parâmetros

  • sendbuf [in, opcional]
    O ponteiro para os dados a serem enviados a todos os processos no grupo. O número e o tipo de dados dos elementos no buffer são especificados nos parâmetros count e datatype.

    Se o parâmetro comm fizer referência a um intracomunhador, você poderá especificar uma opção in-loco especificando MPI_IN_PLACE em todos os processos. Nesse caso, os dados de entrada são obtidos em cada processo do buffer de recebimento, em que serão substituídos pelos dados de saída.

  • recvbuf [out, opcional]
    O ponteiro para um buffer para receber o resultado da operação de redução. Esse parâmetro é significativo apenas no processo raiz.

  • count [in]
    O número de elementos a serem enviados desse processo.

  • datatype [in]
    O MPI_Datatype de cada elemento no buffer. Esse parâmetro deve ser compatível com a operação, conforme especificado no parâmetro op .

  • op [in]
    O identificador MPI_Op indicando a operação de redução global a ser executada. O identificador pode indicar uma operação interna ou definida pelo aplicativo. Para obter uma lista de operações predefinidas, consulte MPI_Op.

  • 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_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER COUNT, DATATYPE, OP, COMM, IERROR

Comentários

Se comm for um intercomunicador, o resultado da redução dos dados fornecidos pelos processos no grupo A será armazenado em cada processo no grupo B e vice-versa. Ambos os grupos devem fornecer argumentos de contagem e de tipo de dados que especificam a mesma assinatura de tipo.

Todas as chamadas de conclusão (por exemplo, MPI_Wait) têm suporte para operações de redução sem bloqueio.

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_Reduce

MPI_Datatype

MPI_Op