Compartir a través de


función MPI_Igather

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

Sintaxis

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            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]
    Puntero a un búfer que contiene los datos que se van a enviar a la raíz. El búfer consta de elementos sucesivos sendcount del MPI_Datatype indicado por el identificador sendtype . La longitud del mensaje se especifica en términos de número de elementos, no en número de bytes.

  • sendcount
    Número de elementos sendtype en sendbuf. Si el valor es cero, la parte de datos del mensaje está vacía.

  • sendtype
    El MPI_Datatype identificador que representa el tipo de datos de cada elemento de sendbuf.

  • recvbuf [out, optional]
    Puntero a un búfer que contiene los datos recibidos de cada proceso en la raíz, incluidos los datos enviados por el proceso raíz (solo significativos en la raíz). La recvbuf del búfer de recepción se omite para todos los procesos no raíz. En el proceso raíz, recvbuf consta de elementos sucesivos recvcount de la MPI_Datatype indicados por el identificador recvtype . La longitud del mensaje se especifica en términos de número de elementos, no en número de bytes.

  • recvcount [in]
    Número de elementos recvtype en recvbuf. Si el valor es cero, la parte de datos del mensaje está vacía (significativa solo en la raíz).

  • recvtype [in]
    El MPI_Datatype identificador que representa el tipo de datos de cada elemento en recvbuf (significativo solo en la raíz).

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

  • 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_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Comentarios

Una llamada sin bloqueo inicia una operación de recopilació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 recopilación sin bloqueo pueden mitigar los posibles efectos de sincronización de las operaciones de recopilación mediante su ejecución en el "fondo".

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

Requisitos

Producto

Microsoft MPI v6

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

Archivo DLL

Msmpi.dll

Consulte también

Funciones colectivas de MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome