função MPI_Igatherv
Recolhe dados variáveis de todos os membros de um grupo para um membro de forma não bloqueada.
Sintaxe
int MPIAPI MPI_Igatherv(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_opt_ const int recvcounts[],
_In_opt_ const int displs[],
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parâmetros
sendbuf [em, opcional]
A alça para uma memória intermédia que contém os dados a enviar para o processo de raiz.Se o parâmetro de comunicação fizer referência a um intracomunário, pode especificar uma opção no local ao especificar MPI_IN_PLACE em todos os processos. Os parâmetros sendcount e sendtype são ignorados. Cada processo introduz dados no elemento de memória intermédia de receção correspondente. O nth process envia dados para o elemento nda memória intermédia de receção. Presume-se que os dados enviados pelo processo de raiz estão no local correto na memória intermédia de receção.
sendcount [in]
O número de elementos na memória intermédia de envio. Se a conta de envio for zero, a parte de dados da mensagem estará vazia.sendtype [in]
O tipo de dados de cada elemento na memória intermédia.recvbuf [fora, opcional]
A alça para uma memória intermédia no processo de raiz que contém os dados recebidos de cada processo, incluindo os dados que são enviados pelo processo de raiz. Este parâmetro é significativo apenas no processo de raiz. O parâmetro recvbuf é ignorado para todos os processos não raiz.recvcounts[] [in, optional]
O número de elementos recebidos de cada processo. Cada elemento na matriz corresponde à classificação do processo de envio. Se a contagem for zero, a parte de dados da mensagem estará vazia. Este parâmetro é significativo apenas no processo de raiz.displs[] [in, optional]
A localização, relativamente ao parâmetro recvbuf , dos dados de cada processo de comunicação. Os dados recebidos do processo j são colocados na memória intermédia de receção do desvio do processo de raiz desativa[j] elementos do ponteiro do sendbuf .Na recvbuf, nas recvcounts e desativa as matrizes de parâmetros, o nelemento de cada matriz refere-se aos dados recebidos do nth communicator process.
Este parâmetro é significativo apenas no processo de raiz.
recvtype [in]
O tipo de dados de cada elemento na memória intermédia. Este parâmetro é significativo apenas no processo de raiz.raiz [em]
A classificação do processo de receção no comunicador especificado.vírgula [em]
O MPI_Comm identificador do comunicador.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_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR
Observações
Uma chamada sem bloqueio inicia uma operação de redução 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 redução não bloqueadas podem mitigar possíveis efeitos de sincronização das operações de redução ao executá-las em "segundo plano".
Todas as chamadas de conclusão (por exemplo, MPI_Wait) são suportadas para operações de redução sem bloqueio.
Requisitos
Produto |
Microsoft MPI v7 |
Cabeçalho |
Mpi.h; Mpif.h |
Biblioteca |
Msmpi.lib |
DLL |
Msmpi.dll |