COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Namespaces | Functions
gather.hpp File Reference
#include "common/Foreach.hpp"
#include "common/BasicExceptions.hpp"
#include "common/PE/types.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 >
void gatherc_impl (const Communicator &comm, const T *in_values, const int in_n, T *out_values, const int root, const int stride)
 
template<typename T >
void gathervm_impl (const Communicator &comm, const T *in_values, const int in_n, const int *in_map, T *out_values, const int *out_n, const int *out_map, const int root, const int stride)
 
template<typename T >
T * gather (const Communicator &comm, const T *in_values, const int in_n, T *out_values, const int root, const int stride=1)
 
template<typename T >
void gather (const Communicator &comm, const std::vector< T > &in_values, std::vector< T > &out_values, const int root, const int stride=1)
 
template<typename T >
T * gather (const Communicator &comm, const T *in_values, const int in_n, const int *in_map, T *out_values, int *out_n, const int *out_map, const int root, const int stride=1)
 
template<typename T >
T * gather (const Communicator &comm, const T *in_values, const int in_n, T *out_values, int *out_n, const int root, const int stride=1)
 
template<typename T >
void gather (const Communicator &comm, const std::vector< T > &in_values, const int in_n, const std::vector< int > &in_map, std::vector< T > &out_values, std::vector< int > &out_n, const std::vector< int > &out_map, const int root, const int stride=1)
 
template<typename T >
void gather (const Communicator &comm, const std::vector< T > &in_values, const int in_n, std::vector< T > &out_values, std::vector< int > &out_n, const int root, const int stride=1)
 

Detailed Description

Author
Tamas Banyai Gather collective communication interface to MPI standard. 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. Three types of communications is implemented:
  • Constant size send and receive on all processors via MPI_gather
  • Variable size send and receive via MPI_gatherv
  • Extension of the variable sized communication to support mapped storage both on send and receive side.

Definition in file gather.hpp.

Send comments to:
COOLFluiD Web Admin