Compartir a través de


función MPI_Allreduce

Combina valores de todos los procesos y distribuye el resultado a todos los procesos.

Sintaxis

int MPIAPI MPI_Allreduce(
  _In_opt_  const void         *sendbuf,
  _Out_opt_       void         *recvbuf,
  _In_            int          count,
  _In_            MPI_Datatype datatype,
  _In_            MPI_Op       op,
  _In_            MPI_Comm     comm
);

Parámetros

  • sendbuf [in, optional]
    Puntero a los datos que se van a enviar a todos los procesos del grupo. El número y el tipo de datos de los elementos del búfer se especifican en los parámetros count y datatype.

    Si el parámetro comm hace referencia a un intracomunicador, puede especificar una opción local especificando MPI_IN_PLACE en todos los procesos. En este caso, los datos de entrada se toman en cada proceso del búfer de recepción, donde se reemplazarán por los datos de salida.

  • recvbuf [out, optional]
    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.

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

  • datatype [in]
    El MPI_Datatype de cada elemento del búfer. Este parámetro debe ser compatible con la operación especificada en el parámetro op .

  • op [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 MPI_Op.

  • comm [in]
    Identificador del comunicador MPI_Comm.

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_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER COUNT, DATATYPE, OP, COMM, IERROR

Comentarios

Si comm es un intercomunicador, el resultado de la reducción de los datos proporcionados por los procesos del grupo A se almacena en cada proceso del grupo B y viceversa. Ambos grupos deben proporcionar argumentos count y datatype que especifiquen la misma firma de tipo.

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

Requisitos

Producto

Paquete redistribuible de HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o HPC Pack 2008 Client Utilities

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

Archivo DLL

Msmpi.dll

Consulte también

Funciones colectivas de MPI

MPI_Reduce

MPI_Datatype

MPI_Op