Compartir a través de


función MPI_Iscatterv

Sintaxis

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, optional]
    Puntero a un búfer que contiene los datos que va a enviar el proceso raíz.

    Este parámetro se omite para todos los procesos no raíz.

    Si el parámetro comm hace referencia a un intracomunicador, puede especificar una opción local especificando MPI_IN_PLACE en el proceso raíz. Se omiten los parámetros recvcount y recvtype . El vector disperso todavía se considera que contiene n segmentos, donde n es el tamaño del grupo; el segmento que corresponde al proceso raíz no se mueve.

  • sendcounts[] [in, optional]
    Número de elementos que se van a enviar a cada proceso. Si sendcounts[i] es cero, la parte de datos del mensaje para ese proceso está vacía.

    Este parámetro se omite para todos los procesos no raíz.

  • displs[] [ in, optional]
    Ubicaciones de los datos que se van a enviar a cada proceso del comunicador. Cada ubicación de la matriz es relativa al elemento correspondiente de la matriz sendbuf .

    En las matrices de parámetros sendbuf, sendcounts y displs, el elemento de cada matriz hace referencia a los datos que se enviarán al proceso del comunicador n.

    Este parámetro solo es significativo en el proceso raíz.

  • sendtype [in]
    Tipo de datos de cada elemento del búfer.

    Este parámetro se omite para todos los procesos no raíz.

  • recvbuf [out, optional]
    Puntero a un búfer que contiene los datos que se reciben en cada proceso. El número y el tipo de datos de los elementos del búfer se especifican en los parámetros recvcount y recvtype .

  • recvcount [in]
    Número de elementos del búfer de recepción. Si el recuento es cero, la parte de datos del mensaje está vacía.

  • recvtype [in]
    Tipo de datos de los elementos del búfer de recepción.

  • raíz [in]
    Rango en el proceso de envío dentro del comunicador especificado.

  • comm [in]
    Identificador del comunicador MPI_Comm.

  • request [out]
    Identificador MPI_Request que representa la operación de comunicación.

Valor devuelto

Devuelve MPI_SUCCESS si se realiza correctamente. De lo contrario, el valor devuelto es un código de error.

En Fortran, el valor devuelto se almacena en el 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

Comentarios

Una llamada sin bloqueo inicia una operación de reducción colectiva que debe completarse en una llamada de finalización independiente. Una vez iniciada, la operación puede avanzar independientemente de cualquier cálculo u otra comunicación en los procesos participantes. De esta manera, las operaciones de reducción sin bloqueo pueden mitigar los posibles efectos de sincronización de las operaciones de reducción mediante su ejecución en el "fondo".

Todas las llamadas de finalización (por ejemplo, MPI_Wait) se admiten para operaciones de reducción sin bloqueo.

Requisitos

Producto

Microsoft MPI v7

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

Archivo DLL

Msmpi.dll

Consulte también

Funciones colectivas de MPI

MPI_Datatype

MPI_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome