Compartilhar via


Função MPI_Iscatter

Dispersa dados de um membro em todos os membros de um grupo de maneira sem bloqueio. Essa função executa o inverso da operação 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 um buffer que contém os dados a serem enviados para o processo raiz.

    Esse parâmetro é ignorado para todos os processos não raiz.

    Se o parâmetro comm fizer referência a um intracomunicador, 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.

  • sendcount [in]
    O número de elementos no buffer de envio. Se sendcount for zero, a parte de dados da mensagem estará vazia.

    Esse parâmetro é ignorado para todos os processos não 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 identificador 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 MPI dos elementos no buffer de recebimento.

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

  • comm [in]
    O MPI_Comm identificador do comunicador.

  • solicitação [out]
    O identificador MPI_Request que representa a operação de comunicação.

Retornar valor

Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.

Em Fortran, o valor retornado é 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

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 nos processos participantes. Dessa forma, as operações de redução sem bloqueio podem atenuar possíveis efeitos de sincronização de 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

Confira 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