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 [em, opcional]
O ponteiro para uma memória intermédia que contém os dados a enviar pelo processo de raiz.Este parâmetro é ignorado para todos os processos não 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 no processo de raiz. Os parâmetros recvcount e recvtype são ignorados. O vetor disperso ainda é considerado como contendo n segmentos, em que n é o tamanho do grupo; o segmento que corresponde ao processo de raiz não é movido.
sendcounts[] [in, optional]
O número de elementos a enviar para cada processo. Se sendcounts[i] for zero, a parte de dados da mensagem para esse processo está vazia.Este parâmetro é ignorado para todos os processos não raiz.
displs[] [in, optional]
As localizações dos dados a enviar para cada processo de comunicação. Cada localização na matriz é relativa ao elemento correspondente da matriz sendbuf .No sendbuf, nas contas de envio e desativa as matrizes de parâmetros, o nelemento de cada matriz refere-se aos dados a serem enviados para o processo do comunicador n.
Este parâmetro é significativo apenas no processo de raiz.
sendtype [in]
O tipo de dados de cada elemento na memória intermédia.Este parâmetro é ignorado para todos os processos não raiz.
recvbuf [fora, opcional]
O ponteiro para uma memória intermédia que contém os dados recebidos em cada processo. O número e o tipo de dados dos elementos na memória intermédia são especificados nos parâmetros recvcount e recvtype .recvcount [in]
O número de elementos na memória intermédia de receção. Se a contagem for zero, a parte de dados da mensagem estará vazia.recvtype [in]
O tipo de dados dos elementos na memória intermédia de receção.raiz [em]
A classificação no processo de envio 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_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
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 |