Partilhar via


função MPI_Allreduce

Combina valores de todos os processos e distribui o resultado de volta a 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 para todos os processos no grupo. O número e o tipo de dados dos elementos na memória intermédia são especificados nos parâmetros count e datatype.

    Se o parâmetro de comunicação fizer referência a um intracomunicador, pode especificar uma opção no local ao especificar MPI_IN_PLACE em todos os processos. Neste caso, os dados de entrada são recolhidos em cada processo da memória intermédia de receção, onde serão substituídos pelos dados de saída.

  • recvbuf [out, optional]
    O ponteiro para uma memória intermédia para receber o resultado da operação de redução. Este parâmetro é significativo apenas no processo de raiz.

  • count [in]
    O número de elementos a enviar a partir deste processo.

  • datatype [in]
    A MPI_Datatype de cada elemento na memória intermédia. Este parâmetro tem de ser compatível com a operação, conforme especificado no parâmetro op .

  • op [in]
    O MPI_Op identificador que indica a operação de redução global a executar. O identificador pode indicar uma operação incorporada ou definida pela aplicação. Para obter uma lista de operações predefinidas, veja MPI_Op.

  • comm [in]
    O identificador do MPI_Comm communicator.

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

Observações

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

Todas as chamadas de conclusão (por exemplo, MPI_Wait) são suportadas para operações de redução sem bloqueio.

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_Reduce

MPI_Datatype

MPI_Op