Inter-processor communication reduction functions. More...
Go to the source code of this file.
Namespaces | |
Foam | |
Namespace for OpenFOAM. | |
Macros | |
#define | Pstream_CommonReductions(Native) |
#define | Pstream_FloatReductions(Native) |
#define | Pstream_BitwiseReductions(Native) |
#define | Pstream_SumReduce(Native) |
Functions | |
template<class T , class BinaryOp > | |
void | reduce (T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce inplace (cf. MPI Allreduce) using linear/tree communication schedule. More... | |
template<class T , class BinaryOp > | |
void | reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm) |
Reduce inplace (cf. MPI Allreduce) multiple values (same size on all ranks!) More... | |
template<class T , class BinaryOp > | |
void | reduce (T &Value, const BinaryOp &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce inplace (cf. MPI Iallreduce) single value. Sets request. More... | |
template<class T , class BinaryOp > | |
void | reduce (T &Value, const BinaryOp &, const int tag, const label comm, label &request) |
Non-blocking reduce inplace (cf. MPI Iallreduce) single value. Sets request. More... | |
template<class T , class BinaryOp > | |
void | reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce inplace (cf. MPI Iallreduce) of multiple values (same size on all ranks!). Sets request. More... | |
template<class T , class BinaryOp > | |
void | reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm, label &request) |
Non-blocking reduce inplace (cf. MPI Iallreduce) of multiple values (same size on all ranks!). Sets request. More... | |
void | reduce (bool &value, const andOp< bool > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Logical (and) inplace reduction. Uses UPstream::reduceAnd. More... | |
void | reduce (bool &value, const orOp< bool > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Logical (or) inplace reduction. Uses UPstream::reduceOr. More... | |
void | reduce (int32_t values[], const int size, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple int32_t values (same size on all ranks!) More... | |
void | reduce (int32_t &value, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single int32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int32_t, N > &values, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple int32_t values. More... | |
void | reduce (int32_t values[], const int size, const maxOp< int32_t > &, const int tag, const label comm) |
Reduce (max) multiple int32_t values (same size on all ranks!) More... | |
void | reduce (int32_t &value, const maxOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single int32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int32_t, N > &values, const maxOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple int32_t values. More... | |
void | reduce (int32_t values[], const int size, const sumOp< int32_t > &, const int tag, const label comm) |
Reduce (sum) multiple int32_t values (same size on all ranks!) More... | |
void | reduce (int32_t &value, const sumOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single int32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int32_t, N > &values, const sumOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple int32_t values. More... | |
void | reduce (int64_t values[], const int size, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple int64_t values (same size on all ranks!) More... | |
void | reduce (int64_t &value, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single int64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int64_t, N > &values, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple int64_t values. More... | |
void | reduce (int64_t values[], const int size, const maxOp< int64_t > &, const int tag, const label comm) |
Reduce (max) multiple int64_t values (same size on all ranks!) More... | |
void | reduce (int64_t &value, const maxOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single int64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int64_t, N > &values, const maxOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple int64_t values. More... | |
void | reduce (int64_t values[], const int size, const sumOp< int64_t > &, const int tag, const label comm) |
Reduce (sum) multiple int64_t values (same size on all ranks!) More... | |
void | reduce (int64_t &value, const sumOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single int64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< int64_t, N > &values, const sumOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple int64_t values. More... | |
void | reduce (uint32_t values[], const int size, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple uint32_t values (same size on all ranks!) More... | |
void | reduce (uint32_t &value, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single uint32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint32_t, N > &values, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple uint32_t values. More... | |
void | reduce (uint32_t values[], const int size, const maxOp< uint32_t > &, const int tag, const label comm) |
Reduce (max) multiple uint32_t values (same size on all ranks!) More... | |
void | reduce (uint32_t &value, const maxOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single uint32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint32_t, N > &values, const maxOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple uint32_t values. More... | |
void | reduce (uint32_t values[], const int size, const sumOp< uint32_t > &, const int tag, const label comm) |
Reduce (sum) multiple uint32_t values (same size on all ranks!) More... | |
void | reduce (uint32_t &value, const sumOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single uint32_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint32_t, N > &values, const sumOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple uint32_t values. More... | |
void | reduce (uint64_t values[], const int size, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple uint64_t values (same size on all ranks!) More... | |
void | reduce (uint64_t &value, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single uint64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint64_t, N > &values, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple uint64_t values. More... | |
void | reduce (uint64_t values[], const int size, const maxOp< uint64_t > &, const int tag, const label comm) |
Reduce (max) multiple uint64_t values (same size on all ranks!) More... | |
void | reduce (uint64_t &value, const maxOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single uint64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint64_t, N > &values, const maxOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple uint64_t values. More... | |
void | reduce (uint64_t values[], const int size, const sumOp< uint64_t > &, const int tag, const label comm) |
Reduce (sum) multiple uint64_t values (same size on all ranks!) More... | |
void | reduce (uint64_t &value, const sumOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single uint64_t value. More... | |
template<unsigned N> | |
void | reduce (FixedList< uint64_t, N > &values, const sumOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple uint64_t values. More... | |
void | reduce (float values[], const int size, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple float values (same size on all ranks!) More... | |
void | reduce (float &value, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single float value. More... | |
template<unsigned N> | |
void | reduce (FixedList< float, N > &values, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple float values. More... | |
void | reduce (float values[], const int size, const maxOp< float > &, const int tag, const label comm) |
Reduce (max) multiple float values (same size on all ranks!) More... | |
void | reduce (float &value, const maxOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single float value. More... | |
template<unsigned N> | |
void | reduce (FixedList< float, N > &values, const maxOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple float values. More... | |
void | reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm) |
Reduce (sum) multiple float values (same size on all ranks!) More... | |
void | reduce (float &value, const sumOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single float value. More... | |
template<unsigned N> | |
void | reduce (FixedList< float, N > &values, const sumOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple float values. More... | |
void | reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce (sum) multiple float values. Sets request. More... | |
void | reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm, label &requestID) |
Non-blocking reduce (sum) multiple float values. Sets request. More... | |
void | reduce (float &value, const sumOp< float > &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce (sum) single float value. Sets request. More... | |
void | reduce (float &value, const sumOp< float > &, const int tag, const label comm, label &requestID) |
Non-blocking reduce (sum) single float value. Sets request. More... | |
void | reduce (double values[], const int size, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple double values (same size on all ranks!) More... | |
void | reduce (double &value, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) single double value. More... | |
template<unsigned N> | |
void | reduce (FixedList< double, N > &values, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (min) multiple double values. More... | |
void | reduce (double values[], const int size, const maxOp< double > &, const int tag, const label comm) |
Reduce (max) multiple double values (same size on all ranks!) More... | |
void | reduce (double &value, const maxOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) single double value. More... | |
template<unsigned N> | |
void | reduce (FixedList< double, N > &values, const maxOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (max) multiple double values. More... | |
void | reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm) |
Reduce (sum) multiple double values (same size on all ranks!) More... | |
void | reduce (double &value, const sumOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) single double value. More... | |
template<unsigned N> | |
void | reduce (FixedList< double, N > &values, const sumOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (sum) multiple double values. More... | |
void | reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce (sum) multiple double values. Sets request. More... | |
void | reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm, label &requestID) |
Non-blocking reduce (sum) multiple double values. Sets request. More... | |
void | reduce (double &value, const sumOp< double > &, const int tag, const label comm, UPstream::Request &req) |
Non-blocking reduce (sum) single double value. Sets request. More... | |
void | reduce (double &value, const sumOp< double > &, const int tag, const label comm, label &requestID) |
Non-blocking reduce (sum) single double value. Sets request. More... | |
void | reduce (unsigned char values[], const int size, const bitOrOp< unsigned char > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (bit-or) multiple unsigned char values (same size on all ranks!) More... | |
void | reduce (unsigned char &value, const bitOrOp< unsigned char > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (bit-or) single unsigned char value. More... | |
void | reduce (unsigned int values[], const int size, const bitOrOp< unsigned int > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (bit-or) multiple unsigned int values (same size on all ranks!) More... | |
void | reduce (unsigned int &value, const bitOrOp< unsigned int > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce (bit-or) single unsigned int value. More... | |
template<class T > | |
void | sumReduce (T &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Reduce inplace (cf. MPI Allreduce) the sum of both value and count (for averaging) More... | |
void | sumReduce (float &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Sum of both float value and count (for averaging) More... | |
void | sumReduce (double &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Sum of both double value and count (for averaging) More... | |
template<class T , class BinaryOp > | |
T | returnReduce (const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm) |
Perform reduction on a copy, using specified binary operation. More... | |
bool | returnReduceAnd (const bool value, const label comm=UPstream::worldComm) |
Perform logical (and) MPI Allreduce on a copy. Uses UPstream::reduceAnd. More... | |
bool | returnReduceOr (const bool value, const label comm=UPstream::worldComm) |
Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr. More... | |
Inter-processor communication reduction functions.
Original source file PstreamReduceOps.H
InNamespace Foam
Definition in file PstreamReduceOps.H.
#define Pstream_CommonReductions | ( | Native | ) |
Definition at line 189 of file PstreamReduceOps.H.
#define Pstream_FloatReductions | ( | Native | ) |
Definition at line 293 of file PstreamReduceOps.H.
#define Pstream_BitwiseReductions | ( | Native | ) |
Definition at line 347 of file PstreamReduceOps.H.
#define Pstream_SumReduce | ( | Native | ) |
Definition at line 415 of file PstreamReduceOps.H.