Compartir a través de


función MPI_Ireduce

Realiza una operación de reducción global (por ejemplo, suma, máximo o lógica y) en todos los miembros de un grupo de forma no bloqueada.

Sintaxis

int MPIAPI MPI_Ireduce(
  _In_      void         *sendbuf,
  _Out_opt_ void         *recvbuf,
  _In_      int          count,
  _In_      MPI_Datatype datatype,
  _In_      MPI_Op       op,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parámetros

  • sendbuf [in]
    Puntero a un búfer que contiene los datos de esta clasificación que se van a usar en la reducción. El búfer consta de recuento elementos sucesivos del MPI_Datatype indicados por el identificador de tipo de datos . La longitud del mensaje se especifica en términos de número de elementos, no el número de bytes.

  • [out, opcional]
    Puntero a un búfer para recibir el resultado de la operación de reducción. Este parámetro solo es significativo en el proceso raíz.

  • recuento [in]
    Número de elementos que se van a enviar desde este proceso.

  • de tipo de datos [in]
    Identificador MPI_Datatype que representa el tipo de datos de cada elemento de sendbuf.

  • de operación [in]
    Identificador MPI_Op que indica la operación de reducción global que se va a realizar. El identificador puede indicar una operación integrada o definida por la aplicación. Para obtener una lista de las operaciones predefinidas, consulte el tema MPI_Op.

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

  • comm [in]
    Identificador del comunicador MPI_Comm.

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

Valor devuelto

Devuelve MPI_SUCCESS si se ejecuta 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_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR) 
        <type> SENDBUF(*), RECVBUF(*) 
        INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR

Observaciones

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 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 las operaciones de reducción sin bloqueo.

Requisitos

Producto

Microsoft MPI v6

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Consulte también

funciones colectivas de MPI

MPI_Datatype

MPI_Op

MPI_Reduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome