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.
Coleta dados de todos os membros de um grupo e envia os dados para todos os membros do grupo de maneira não bloqueada.
Sintaxe
int MPIAPI MPI_Iallgather(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parâmetros
sendbuf [in, opcional]
O ponteiro para os dados a serem enviados a todos os processos no grupo. O número e o tipo de dados dos elementos no buffer são especificados nos parâmetros sendcount e sendtype . Cada elemento no buffer corresponde a um processo no grupo.Se o parâmetro comm fizer referência a um intracomunhador, você poderá especificar uma opção in-loco especificando MPI_IN_PLACE em todos os processos. Os parâmetros sendcount e sendtype são ignorados. Cada processo insere dados no elemento de buffer de recebimento correspondente. O nth processo envia dados para o nth elemento do buffer de recebimento.
sendcount [in]
O número de elementos no buffer especificado no parâmetro sendbuf . Se sendcount for zero, a parte de dados da mensagem estará vazia.sendtype [in]
O tipo de dados MPI dos elementos no buffer de envio.recvbuf [out, opcional]
O ponteiro para um buffer que contém os dados recebidos de cada processo. O número e o tipo de dados dos elementos no buffer são especificados nos parâmetros recvcount e recvtype .recvcount [in]
O número de elementos no buffer de recebimento. Se a contagem for zero, a parte de dados da mensagem estará vazia.recvtype [in]
O tipo de dados MPI dos elementos no buffer de recebimento.comm [in]
O identificador MPI_Comm comunicador.solicitação [out]
O identificador MPI_Request que representa a operação de comunicação.
Retornar valor
Retorna MPI_SUCCESS com êxito. Caso contrário, o valor retornado será um código de erro.
No Fortran, o valor retornado é armazenado no parâmetro IERROR .
Fortran
MPI_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, 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 em processos participantes. Dessa forma, as operações de redução sem bloqueio podem atenuar possíveis efeitos de sincronização das 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 |