Similar to comm.gather
, comm.reduce
takes an array of input elements in each process and returns an array of output elements to the root process. The output elements contain the reduced result.
In mpi4py
, we define the reduction operation through the following statement:
comm.Reduce(sendbuf, recvbuf, rank_of_root_process, op = type_of_reduction_operation)
We must note that the difference with the comm.gather
statement resides in the op
parameter, which is the operation that you wish to apply to your data, and the mpi4py
module contains a set of reduction operations that can be used. Some of the reduction operations defined by MPI are:
MPI.MAX
: This returns the maximum elementMPI.MIN
: This returns the minimum elementMPI.SUM
: This sums up the elementsMPI.PROD
: This multiplies all elementsMPI.LAND
: This performs a logical operation and across the elementsMPI.MAXLOC
: This returns the maximum value and the rank of the process that owns itMPI.MINLOC
: This returns the...