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 |