Partilhar via


função MPI_Iscatter

Dispersa dados de um membro por todos os membros de um grupo de forma não bloqueada. Esta função executa o inverso da operação que é executada pela função MPI_Igather.

Sintaxe

int MPIAPI MPI_Iscatter(
  _In_opt_  const void         *sendbuf,
  _In_             int         sendcount,
  _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 uma memória intermédia que contém os dados a serem enviados para o 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 intracomunicador, 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.

  • 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 está vazia.

    Este parâmetro é ignorado para todos os processos não 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 [out, optional]
    O identificador para uma memória intermédia que contém os dados que são 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 está vazia.

  • recvtype [in]
    O tipo de dados MPI dos elementos na memória intermédia de receção.

  • raiz [in]
    A classificação do processo de receção no comunicador especificado.

  • 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_ISCATTER(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 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 sem bloqueio 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

Ver também

Funções Coletivas de MPI

MPI_Datatype

MPI_Scatter

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome