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 |