Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Combina valores de todos os processos e distribui o resultado de volta para todos os processos de maneira não bloqueada.
Sintaxe
int MPIAPI MPI_Iallreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
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 no buffer são especificados nos parâmetros count e datatype .Se o parâmetro comm referenciar um intracomunicador, 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.count [in]
O número de elementos a serem enviados desse processo.datatype [in]
O tipo de dados de cada elemento no buffer. Esse parâmetro deve ser compatível com a operação, conforme especificado no parâmetro op .op [in]
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 MPI_Comm identificador do comunicador.solicitação [out]
O identificador MPI_Request que representa a operação de comunicação.
Retornar valor
Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.
Em Fortran, o valor retornado é armazenado no parâmetro IERROR .
Fortran
MPI_IALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, REQUEST, IERROR
Comentários
Uma chamada sem bloqueio inicia uma operação de redução coletiva que deve ser concluída em uma chamada de conclusão separada. Depois de iniciada, a operação pode progredir independentemente de qualquer computação ou outra comunicação nos processos participantes. Dessa forma, as operações de redução sem bloqueio podem atenuar possíveis efeitos de sincronização de operações de redução executando-as em "segundo plano".
Todas as chamadas de conclusão (por exemplo, MPI_Wait) têm suporte para operações de redução sem bloqueio.
Requisitos
Produto |
Microsoft MPI v7 |
parâmetro |
Mpi.h; Mpif.h |
Biblioteca |
Msmpi.lib |
DLL |
Msmpi.dll |