Compartir a través de


MPI_Igatherv función

Recopila datos de variables de todos los miembros de un grupo a un miembro de forma no bloqueada.

Sintaxis

int MPIAPI MPI_Igatherv(
  _In_opt_  const void         *sendbuf,
  _In_            int          sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_opt_  const int          recvcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parámetros

  • sendbuf [in, opcional]
    Identificador de un búfer que contiene los datos que se van a enviar al proceso raíz.

    Si el parámetro comm hace referencia a un intracomunicador, puede especificar una opción local especificando MPI_IN_PLACE en todos los procesos. Los parámetros sendcount y sendtype se omiten. Cada proceso escribe datos en el elemento de búfer de recepción correspondiente. El proceso envía datos al elemento del búfer de recepción. Se supone que los datos enviados por el proceso raíz están en el lugar correcto en el búfer de recepción.

  • sendcount [in]
    Número de elementos del búfer de envío. Si sendcount es cero, la parte de datos del mensaje está vacía.

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

  • recvbuf [out, optional]
    Identificador de un búfer en el proceso raíz que contiene los datos recibidos de cada proceso, incluidos los datos enviados por el proceso raíz. Este parámetro solo es significativo en el proceso raíz. El parámetro recvbuf se omite para todos los procesos no raíz.

  • recvcounts[] [in, optional]
    Número de elementos que se reciben de cada proceso. Cada elemento de la matriz corresponde al rango del proceso de envío. Si el recuento es cero, la parte de datos del mensaje está vacía. Este parámetro solo es significativo en el proceso raíz.

  • displs[] [in, optional]
    Ubicación, relativa al parámetro recvbuf , de los datos de cada proceso de comunicador. Los datos recibidos del proceso j se colocan en el búfer de recepción de los elementos de desplazamiento del proceso raíz displs[j] del puntero sendbuf .

    En las matrices de parámetrosrecvbuf, recvcounts y displs, el elemento de cada matriz hace referencia a los datos recibidos del proceso de comunicador n.

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

  • recvtype [in]
    Tipo de datos de cada elemento del búfer. Este parámetro solo es significativo en el proceso raíz.

  • raíz [in]
    Rango del proceso receptor dentro del comunicador especificado.

  • comm [in]
    Identificador del comunicador MPI_Comm.

  • request [out]
    Identificador de 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_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), 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 "segundo plano".

Todas las llamadas de finalización (por ejemplo, MPI_Wait) se admiten para las operaciones de reducción de no 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_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome