MPI_Ireduce função
Executa uma operação de redução global (por exemplo, soma, máxima ou lógica e) em todos os membros de um grupo de forma sem bloqueio.
Sintaxe
int MPIAPI MPI_Ireduce(
_In_ void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parâmetros
sendbuf [em]
O ponteiro para um buffer contendo os dados dessa classificação a serem usados na redução. O buffer consiste emcontagem elementos sucessivos doMPI_Datatype indicado pelo identificadortipo de dados. O comprimento da mensagem é especificado em termos de número de elementos, não número de bytes. recvbuf [out, opcional]
O ponteiro para um buffer para receber o resultado da operação de redução. Este parâmetro é significativo apenas no processo raiz.contagem [in]
O número de elementos a enviar a partir deste processo.tipo de dados [in]
O identificador MPI_Datatype que representa o tipo de dados de cada elemento em sendbuf.op [em]
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 o tópico MPI_Op.raiz [em]
A classificação do processo de recebimento dentro do MPI_Commcomm.comunicação [in]
O identificador MPI_Comm comunicador.pedido [out]
O identificador MPI_Request que representa a operação de comunicação.
Valor de retorno
Retorna MPI_SUCCESS no sucesso. Caso contrário, o valor de retorno é um código de erro.
No Fortran, o valor de retorno é armazenado no parâmetro IERROR.
Fortran
MPI_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, ROOT, 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. Uma vez iniciada, a operação pode progredir independentemente de qualquer cálculo ou outra comunicação nos processos participantes. Dessa forma, as operações de redução sem bloqueio podem mitigar possíveis efeitos sincronizadores das operações de redução, executando-as em "segundo plano".
Todas as chamadas de conclusão (por exemplo, MPI_Wait) são suportadas para operações de redução sem bloqueio.
Requerimentos
Produto |
Microsoft MPI v6 |
Cabeçalho |
Mpi.h; Mpif.h |
Biblioteca |
Msmpi.lib |
DLL |
Msmpi.dll |