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 |