COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Namespaces | Functions
reduce.hpp File Reference
#include "common/BoostAssertions.hpp"
#include "common/Foreach.hpp"
#include "common/BasicExceptions.hpp"
#include "common/PE/types.hpp"
#include "common/PE/operations.hpp"
#include "common/PE/datatype.hpp"

Go to the source code of this file.

Namespaces

 cf3
 Top-level namespace for coolfluid.
 
 cf3::common
 Most basic kernel library.
 
 cf3::common::PE
 Classes offering a MPI interface for COOLFluiD.
 
 cf3::common::PE::detail
 Default of get_mpi_datatype_impl which returns nullptr.
 

Functions

template<typename T , typename Op >
void reduce_impl (const Communicator &comm, Op, const T *in_values, const int in_n, const int *in_map, T *out_values, const int *out_map, const int root, const int stride)
 
template<typename T , typename Op >
T * reduce (const Communicator &comm, const Op &op, const T *in_values, const int in_n, T *out_values, const int root, const int stride=1)
 
template<typename T , typename Op >
void reduce (const Communicator &comm, const Op &op, const std::vector< T > &in_values, std::vector< T > &out_values, const int root, const int stride=1)
 
template<typename T , typename Op >
T * reduce (const Communicator &comm, const Op &op, const T *in_values, const int in_n, const int *in_map, T *out_values, const int *out_map, const int root, const int stride=1)
 
template<typename T , typename Op >
void reduce (const Communicator &comm, const Op &op, const std::vector< T > &in_values, const std::vector< int > &in_map, std::vector< T > &out_values, const std::vector< int > &out_map, const int root, const int stride=1)
 

Detailed Description

Author
Tamas Banyai Doing an operation on identical sizes of data on each processes. For example summing up values over all the processes. Due to the nature of MPI standard, at the lowest level the memory required to be linear meaning &xyz[0] should give a single and continous block of memory. Some functions support automatic evaluation of number of items on the receive side but be very cautious with using them because it requires two collective communication and may end up with degraded performance. Currently, the interface supports raw pointers and std::vectors.

Definition in file reduce.hpp.

Send comments to:
COOLFluiD Web Admin