Partilhar via


função MPI_Igather

Recolhe dados de todos os membros de um grupo para um membro de forma não bloqueada.

Sintaxe

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parâmetros

  • sendbuf [in]
    O ponteiro para uma memória intermédia que contém os dados a serem enviados para a raiz. A memória intermédia consiste em elementos sucessivos da conta de envio do MPI_Datatype indicados pela alça do tipo de envio . O comprimento da mensagem é especificado em termos de número de elementos, não em número de bytes.

  • sendcount
    O número de elementos de tipo de envio no sendbuf. Se o valor for zero, a parte de dados da mensagem está vazia.

  • sendtype
    O MPI_Datatype identificador que representa o tipo de dados de cada elemento no sendbuf.

  • recvbuf [out, optional]
    O ponteiro para uma memória intermédia que contém os dados recebidos de cada processo na raiz, incluindo os dados enviados pelo processo de raiz (significativo apenas na raiz). O recvbuf da memória intermédia de receção é ignorado para todos os processos não raiz. No processo de raiz, o recvbuf consiste em elementos sucessivos da contagem de revcount do MPI_Datatype indicados pela alça de revtype . O comprimento da mensagem é especificado em termos de número de elementos, não em número de bytes.

  • recvcount [in]
    O número de elementos de recvtype no recvbuf. Se o valor for zero, a parte de dados da mensagem está vazia (significativa apenas na raiz).

  • recvtype [in]
    O identificador MPI_Datatype representa o tipo de dados de cada elemento no recvbuf (significativo apenas na raiz).

  • raiz [in]
    A classificação do processo de receção na MPI_Commcomunicação.

  • comm [in]
    O identificador do MPI_Comm communicator.

  • pedido [fora]
    O MPI_Request identificador que representa a operação de comunicação.

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_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Observações

Uma chamada sem bloqueio inicia uma operação de recolha coletiva que tem de ser concluída numa chamada de conclusão separada. Uma vez iniciada, a operação pode progredir independentemente de qualquer computação ou outra comunicação nos processos participantes. Desta forma, as operações de recolha sem bloqueio podem mitigar possíveis efeitos de sincronização das operações de recolha ao executá-las em "segundo plano".

Todas as chamadas de conclusão (por exemplo, MPI_Wait) são suportadas para operações de recolha sem bloqueio.

Requisitos

Produto

Microsoft MPI v6

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções Coletivas de MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome