COOLFluiD
Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
|
Classes offering a MPI interface for COOLFluiD. More...
Namespaces | |
detail | |
Default of get_mpi_datatype_impl which returns nullptr. | |
Typedefs | |
typedef MPI_Comm | Communicator |
communicator More... | |
typedef MPI_Op | Operation |
operation (mostly for reduce and all_reduce) More... | |
typedef MPI_Datatype | Datatype |
datatype More... | |
Functions | |
template<typename T > | |
T * | all_gather (const Communicator &comm, const T *in_values, const int in_n, T *out_values, const int stride=1) |
template<typename T > | |
void | all_gather (const Communicator &comm, const std::vector< T > &in_values, std::vector< T > &out_values, const int stride=1) |
template<typename T > | |
void | all_gather (const Communicator &comm, const T &in_value, std::vector< T > &out_values) |
template<typename T > | |
T * | all_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 stride=1) |
template<typename T > | |
T * | all_gather (const Communicator &comm, const T *in_values, const int in_n, T *out_values, int *out_n, const int stride=1) |
template<typename T > | |
void | all_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 stride=1) |
template<typename T > | |
void | all_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 stride=1) |
template<typename T > | |
void | all_gather (const Communicator &comm, const std::vector< T > &send, std::vector< std::vector< T > > &recv) |
template<typename T , typename Op > | |
T * | all_reduce (const Communicator &comm, const Op &op, const T *in_values, const int in_n, T *out_values, const int stride=1) |
template<typename T , typename Op > | |
void | all_reduce (const Communicator &comm, const Op &op, const std::vector< T > &in_values, std::vector< T > &out_values, const int stride=1) |
template<typename T , typename Op > | |
T * | all_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 stride=1) |
template<typename T , typename Op > | |
void | all_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 stride=1) |
template<typename T > | |
T * | all_to_all (const Communicator &comm, const T *in_values, const int in_n, T *out_values, const int stride=1) |
template<typename T > | |
void | all_to_all (const Communicator &comm, const std::vector< T > &in_values, std::vector< T > &out_values, const int stride=1) |
template<typename T > | |
T * | all_to_all (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 stride=1) |
template<typename T > | |
T * | all_to_all (const Communicator &comm, const T *in_values, const int *in_n, T *out_values, int *out_n, const int stride=1) |
template<typename T > | |
void | all_to_all (const Communicator &comm, const std::vector< T > &in_values, const std::vector< 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 stride=1) |
template<typename T > | |
void | all_to_all (const Communicator &comm, const std::vector< T > &in_values, const std::vector< int > &in_n, std::vector< T > &out_values, std::vector< int > &out_n, const int stride=1) |
template<typename T > | |
void | all_to_all (const Communicator &comm, const std::vector< std::vector< T > > &send, std::vector< std::vector< T > > &recv) |
template<typename T > | |
T * | broadcast (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 | broadcast (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 * | broadcast (const Communicator &comm, 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 > | |
void | broadcast (const Communicator &comm, 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) |
template<> | |
void | Buffer::pack< std::string > (const std::string *data, const Uint data_size) |
pack specialization for std::string More... | |
template<> | |
void | Buffer::unpack< std::string > (std::string *data, const Uint data_size) |
unpack specialization for std::string More... | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (bool) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (char) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (unsigned char) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (short) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (int) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (long) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (unsigned long long) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (float) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (double) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (long double) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR (std::string) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (char) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (unsigned char) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (short) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (int) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (long) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (unsigned long long) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (float) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (double) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (long double) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR (std::string) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY (Uint) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY (int) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY (Real) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY (bool) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY (Uint) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY (int) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY (Real) | |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY (bool) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (bool) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (char) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (unsigned char) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (short) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (int) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (long) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (unsigned long long) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (float) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (double) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (long double) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR (std::string) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (char) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (unsigned char) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (short) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (int) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (long) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (unsigned long long) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (float) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (double) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (long double) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR (std::string) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY (Uint) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY (int) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY (Real) | |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY (bool) | |
Buffer & | operator<< (Buffer &buffer, PackedObject &obj) |
Buffer & | operator>> (Buffer &buffer, PackedObject &obj) |
std::ostream & | operator<< (std::ostream &out, const Buffer &buffer) |
void | wait_for_debugger (const int rank) |
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) |
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) |
template<typename T > | |
T * | scatter (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 | scatter (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 * | scatter (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 * | scatter (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 | scatter (const Communicator &comm, const std::vector< T > &in_values, const std::vector< int > &in_n, const std::vector< int > &in_map, std::vector< T > &out_values, int &out_n, const std::vector< int > &out_map, const int root, const int stride=1) |
template<typename T > | |
void | scatter (const Communicator &comm, const std::vector< T > &in_values, const std::vector< int > &in_n, std::vector< T > &out_values, int &out_n, const int root, const int stride=1) |
template<typename T > | |
Datatype | get_mpi_datatype (const T &ref_of_type) |
ACCESS AND REGISTRATION MECHANISM. More... | |
template<typename T > | |
Datatype | get_mpi_datatype () |
MPI_CUSTOM_OPERATION (max, true,*out=*in > *out?*in:*out) | |
BUILT-IN OPERATIONS. More... | |
MPI_CUSTOM_OPERATION (min, true,*out=*in< *out?*in:*out) | |
MPI_CUSTOM_OPERATION (plus, true,*out=*in+*out) | |
MPI_CUSTOM_OPERATION (multiplies, true,*out=*in **out) | |
MPI_CUSTOM_OPERATION (logical_and, true,*out=*in &&*out) | |
MPI_CUSTOM_OPERATION (logical_or, true,*out=*in||*out) | |
MPI_CUSTOM_OPERATION (logical_xor, true,*out=!*in^!*out) | |
MPI_CUSTOM_OPERATION (bitwise_and, true,*out=*in &*out) | |
MPI_CUSTOM_OPERATION (bitwise_or, true,*out=*in|*out) | |
MPI_CUSTOM_OPERATION (bitwise_xor, true,*out=*in^*out) | |
MPI_CUSTOM_OPERATION (customplus, true,*out=*in+*out) | |
EXAMPLE ON HOW TO IMPLEMENT A CUSTOM OPERATION. More... | |
Classes offering a MPI interface for COOLFluiD.
typedef MPI_Comm Communicator |
typedef MPI_Op Operation |
|
inline |
Interface to the constant size all_gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 185 of file all_gather.hpp.
|
inline |
Interface to the constant size all_gather communication with specialization to std::vector.
comm | Comm::Communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 214 of file all_gather.hpp.
|
inline |
Interface to the constant size all_gather communication with specialization to std::vector.
comm | Comm::Communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 241 of file all_gather.hpp.
|
inline |
Interface to the variable size mapped all_gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_gather to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 337 of file all_gather.hpp.
|
inline |
Interface to the variable size all_gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 275 of file all_gather.hpp.
|
inline |
Interface to the constant size all_gather communication with specialization to raw pointer. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_gather to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 388 of file all_gather.hpp.
|
inline |
Interface to the constant size all_gather communication with specialization to std::vector. If out_values's size is zero or in_values==out_values, then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
out_values | receive buffer |
out_n | receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 302 of file all_gather.hpp.
void cf3::common::PE::all_gather | ( | const Communicator & | comm, |
const std::vector< T > & | send, | ||
std::vector< std::vector< T > > & | recv | ||
) |
Definition at line 423 of file all_gather.hpp.
|
inline |
Interface to all_reduce communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 117 of file all_reduce.hpp.
|
inline |
Interface to all_reduce communication with specialization to std::vector.
comm | MPI::communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 142 of file all_reduce.hpp.
|
inline |
Interface to the mapped all_reduce communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 171 of file all_reduce.hpp.
|
inline |
Interface to the all_reduce communication with specialization to std::vector. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 209 of file all_reduce.hpp.
|
inline |
Interface to the constant size all to all communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 192 of file all_to_all.hpp.
|
inline |
Interface to the constant size all to all communication with specialization to std::vector.
comm | Comm::Communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 221 of file all_to_all.hpp.
|
inline |
Interface to the variable size mapped all to all communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 318 of file all_to_all.hpp.
|
inline |
Interface to the variable size all to all communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 256 of file all_to_all.hpp.
|
inline |
Interface to the constant size all to all communication with specialization to raw pointer. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 369 of file all_to_all.hpp.
|
inline |
Interface to the constant size all to all communication with specialization to std::vector. If out_values's size is zero or in_values==out_values then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
out_values | receive buffer |
out_n | receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 283 of file all_to_all.hpp.
void cf3::common::PE::all_to_all | ( | const Communicator & | comm, |
const std::vector< std::vector< T > > & | send, | ||
std::vector< std::vector< T > > & | recv | ||
) |
Definition at line 409 of file all_to_all.hpp.
|
inline |
Interface to broadcast communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 111 of file broadcast.hpp.
|
inline |
Interface to broadcast communication with specialization to std::vector.
comm | MPI::communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 146 of file broadcast.hpp.
|
inline |
Interface to the mapped broadcast communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 198 of file broadcast.hpp.
|
inline |
Interface to the broadcast communication with specialization to std::vector. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use all_to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 247 of file broadcast.hpp.
|
inline |
pack specialization for std::string
Definition at line 429 of file Buffer.hpp.
|
inline |
unpack specialization for std::string
Definition at line 447 of file Buffer.hpp.
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | bool | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | char | ) |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | unsigned | char | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | short | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | int | ) |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | unsigned long | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | float | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | long | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR | ( | std::string | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY | ( | Uint | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY | ( | int | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY | ( | Real | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_CONST_SUB_ARRAY | ( | bool | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY | ( | Uint | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY | ( | int | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY | ( | Real | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_SUB_ARRAY | ( | bool | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | char | ) |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | unsigned | char | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | short | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | int | ) |
CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | unsigned long | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | float | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | long | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_PACK_OPERATOR_VECTOR | ( | std::string | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | bool | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | char | ) |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | unsigned | char | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | short | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | int | ) |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | unsigned long | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | float | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | long | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR | ( | std::string | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY | ( | Uint | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY | ( | int | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY | ( | Real | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_SUB_ARRAY | ( | bool | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | char | ) |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | unsigned | char | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | short | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | int | ) |
CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | unsigned long | long | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | float | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | long | double | ) |
cf3::common::PE::CF3_COMMON_PE_BUFFER_UNPACK_OPERATOR_VECTOR | ( | std::string | ) |
|
inline |
Interface to the constant size Gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 186 of file gather.hpp.
|
inline |
Interface to the constant size Gather communication with specialization to std::vector.
comm | Comm::Communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 220 of file gather.hpp.
|
inline |
Interface to the variable size mapped Gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use gather to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 330 of file gather.hpp.
|
inline |
Interface to the variable size Gather communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 263 of file gather.hpp.
|
inline |
Interface to the constant size Gather communication with specialization to raw pointer. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use gather to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 388 of file gather.hpp.
|
inline |
Interface to the constant size Gather communication with specialization to std::vector. If out_values's size is zero or in_values==out_values then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
out_values | receive buffer |
out_n | receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 290 of file gather.hpp.
|
inline |
ACCESS AND REGISTRATION MECHANISM.
Function to obtain Datatype from type or if non-existent than commit one to MPI and store it.
Definition at line 49 of file datatype.hpp.
|
inline |
Definition at line 62 of file datatype.hpp.
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | max | , |
true | , | ||
* | out = *in , |
||
*out?*in:* | out | ||
) |
BUILT-IN OPERATIONS.
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | min | , |
true | |||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | plus | , |
true | , | ||
* | out = *in+*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | multiplies | , |
true | , | ||
* | out = *in **out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | logical_and | , |
true | , | ||
* | out = *in &&*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | logical_or | , |
true | , | ||
* | out = *in||*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | logical_xor | , |
true | , | ||
* | out = !*in^!*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | bitwise_and | , |
true | , | ||
* | out = *in &*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | bitwise_or | , |
true | , | ||
* | out = *in|*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | bitwise_xor | , |
true | , | ||
* | out = *in^*out |
||
) |
cf3::common::PE::MPI_CUSTOM_OPERATION | ( | customplus | , |
true | , | ||
* | out = *in+*out |
||
) |
EXAMPLE ON HOW TO IMPLEMENT A CUSTOM OPERATION.
Example operator, the only requirement is to have the following two members:
|
inline |
Definition at line 672 of file Buffer.hpp.
|
inline |
Definition at line 686 of file Buffer.hpp.
|
inline |
Definition at line 678 of file Buffer.hpp.
|
inline |
Interface to reduce communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 124 of file reduce.hpp.
|
inline |
Interface to reduce communication with specialization to std::vector.
comm | MPI::communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 159 of file reduce.hpp.
|
inline |
Interface to the mapped reduce communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 198 of file reduce.hpp.
|
inline |
Interface to the reduce communication with specialization to std::vector. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use to_all to allocate out_values and fill out_n then you most probably doing something wrong.
comm | MPI::communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 246 of file reduce.hpp.
|
inline |
Interface to the constant size scatter communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | size of the send array (number of items) |
out_values | pointer to the receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 187 of file scatter.hpp.
|
inline |
Interface to the constant size scatter communication with specialization to std::vector.
comm | Comm::Communicator |
in_values | send buffer |
out_values | receive buffer |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 221 of file scatter.hpp.
|
inline |
Interface to the variable size mapped scatter communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated to fit the max in map and the pointer is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use scatter to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer passed, no mapping on send side. |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes. If zero pointer passed, no mapping on receive side. |
out_map | array of size #processes holding the mapping |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 336 of file scatter.hpp.
|
inline |
Interface to the variable size scatter communication with specialization to raw pointer. If null pointer passed for out_values then memory is allocated and the pointer to it is returned, otherwise out_values is returned. If out_n (receive counts) contains only -1, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | pointer to the send buffer |
in_n | array holding send counts of size #processes |
out_values | pointer to the receive buffer |
out_n | array holding receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 269 of file scatter.hpp.
|
inline |
Interface to the constant size scatter communication with specialization to raw pointer. If out_values's size is zero then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n. However due to the fact that map already needs all the information if you use scatter to allocate out_values and fill out_n then you most probably doing something wrong.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
in_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on send side. |
out_values | receive buffer |
out_n | receive counts of size #processes |
out_map | array of size #processes holding the mapping. If zero pointer or zero size vector passed, no mapping on receive side. |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 390 of file scatter.hpp.
|
inline |
Interface to the constant size scatter communication with specialization to std::vector. If out_values's size is zero or in_values==out_values then its resized. If out_n (receive counts) is not of size of #processes, then error occurs. If out_n (receive counts) is filled with -1s, then a pre communication occurs to fill out_n.
comm | Comm::Communicator |
in_values | send buffer |
in_n | send counts of size #processes |
out_values | receive buffer |
out_n | receive counts of size #processes |
stride | is the number of items of type T forming one array element, for example if communicating coordinates together, then stride==3: X0,Y0,Z0,X1,Y1,Z1,...,Xn-1,Yn-1,Zn-1 |
Definition at line 296 of file scatter.hpp.
void wait_for_debugger | ( | const int | rank = -1 | ) |
ComponentBuilder< CommWrapperMArray<int,1>, CommWrapper, LibCommon > CommWrapperMArray_int_1_builder |
Definition at line 21 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperMArray<int,2>, CommWrapper, LibCommon > CommWrapperMArray_int_2_builder |
Definition at line 26 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperMArray<Real,1>, CommWrapper, LibCommon > CommWrapperMArray_Real_1_builder |
Definition at line 22 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperMArray<Real,2>, CommWrapper, LibCommon > CommWrapperMArray_Real_2_builder |
Definition at line 27 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperMArray<Uint,1>, CommWrapper, LibCommon > CommWrapperMArray_Uint_1_builder |
Definition at line 20 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperMArray<Uint,2>, CommWrapper, LibCommon > CommWrapperMArray_Uint_2_builder |
Definition at line 25 of file CommWrapperMArray.cpp.
ComponentBuilder< CommWrapperPtr<int>, CommWrapper, LibCommon > CommWrapperPtr_int_builder |
Definition at line 29 of file CommWrapper.cpp.
ComponentBuilder< CommWrapperPtr<Real>, CommWrapper, LibCommon > CommWrapperPtr_Real_builder |
Definition at line 31 of file CommWrapper.cpp.
ComponentBuilder< CommWrapperPtr<Uint>, CommWrapper, LibCommon > CommWrapperPtr_Uint_builder |
Definition at line 30 of file CommWrapper.cpp.
ComponentBuilder< CommWrapperVector<int>, CommWrapper, LibCommon > CommWrapperVector_int_builder |
Definition at line 34 of file CommWrapper.cpp.
ComponentBuilder< CommWrapperVector<Real>, CommWrapper, LibCommon > CommWrapperVector_Real_builder |
Definition at line 36 of file CommWrapper.cpp.
ComponentBuilder< CommWrapperVector<Uint>, CommWrapper, LibCommon > CommWrapperVector_Uint_builder |
Definition at line 35 of file CommWrapper.cpp.
common::ComponentBuilder< Manager, Component, LibCommon > Manager_Builder |
Definition at line 45 of file Manager.cpp.
ComponentBuilder< WorkerGroup, Component, LibCommon > WorkerGroup_Builder |
Definition at line 26 of file WorkerGroup.cpp.
Send comments to: COOLFluiD Web Admin |