# Name

HPL_all_reduce All reduce operation.

# Synopsis

`#include "hpl.h"`
`int` `HPL_all_reduce(` `void *` `BUFFER`, `const int` `COUNT`, `const HPL_T_TYPE` `DTYPE`, `const HPL_T_OP` `OP`, `MPI_Comm` `COMM` `);`

# Description

HPL_all_reduce performs a global reduce operation across all processes of a group leaving the results on all processes.

# Arguments

    BUFFER  (local input/global output)   void *
            On entry,  BUFFER  points to  the  buffer to be combined.  On
            exit, this array contains the combined data and  is identical
            on all processes in the group.

    COUNT   (global input)                const int
            On entry,  COUNT  indicates the number of entries in  BUFFER.
            COUNT must be at least zero.

    DTYPE   (global input)                const HPL_T_TYPE
            On entry,  DTYPE  specifies the type of the buffers operands.

    OP      (global input)                const HPL_T_OP
            On entry, OP is a pointer to the local combine function.

    COMM    (global/local input)          MPI_Comm
            The MPI communicator identifying the process collection.

# See Also

HPL_broadcast, HPL_reduce, HPL_barrier, HPL_min, HPL_max, HPL_sum.