função MPI_Iscatterv
Sintaxe
int MPIAPI MPI_Iscatterv(
_In_opt_ const void *sendbuf,
_In_opt_ const int sendcounts[],
_In_opt_ const int displs[],
_In_ 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, opcional]
O ponteiro para um buffer que contém os dados a serem enviados pelo processo raiz.Esse parâmetro é ignorado para todos os processos não raiz.
Se o parâmetro comm fizer referência a um intracomunhador, você poderá especificar uma opção in-loco especificando MPI_IN_PLACE no processo raiz. Os parâmetros recvcount e recvtype são ignorados. O vetor disperso ainda é considerado para conter n segmentos, em que n é o tamanho do grupo; o segmento que corresponde ao processo raiz não é movido.
sendcounts[] [in, opcional]
O número de elementos a serem enviados para cada processo. Se sendcounts[i] for zero, a parte de dados da mensagem desse processo estará vazia.Esse parâmetro é ignorado para todos os processos não raiz.
displs[] [in, opcional]
Os locais dos dados a serem enviados para cada processo de comunicador. Cada local na matriz é relativo ao elemento correspondente da matriz sendbuf .Nas matrizes de parâmetro sendbuf, sendcounts e displs , o nth elemento de cada matriz refere-se aos dados a serem enviados para o nth processo do comunicador.
Esse parâmetro é significativo apenas no processo raiz.
sendtype [in]
O tipo de dados de cada elemento no buffer.Esse parâmetro é ignorado para todos os processos não raiz.
recvbuf [out, opcional]
O ponteiro para um buffer que contém os dados recebidos em 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 dos elementos no buffer de recebimento.raiz [in]
A classificação no processo de envio dentro do comunicador especificado.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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, 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. 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 |