Partilhar via


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 em contagem elementos sucessivos do MPI_Datatype indicado pelo identificador tipo 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

Ver também

Funções Coletivas do IPM

MPI_Datatype

MPI_Op

MPI_Reduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome