Namespaces | |
detail | |
Typedefs | |
typedef uint8_t | processor_id_type |
typedef MPI_Info | info |
Info object used by some MPI-3 methods. More... | |
typedef MPI_Datatype | data_type |
Data types for communication. More... | |
typedef MPI_Aint | DispType |
typedef MPI_Request | request |
Request object for non-blocking I/O. More... | |
typedef MPI_Status | status |
Status object for querying messages. More... | |
typedef MPI_Count | CountType |
Functions | |
template<typename datum , typename MapToVectors , typename GatherFunctor , typename ActionFunctor > | |
void | pull_parallel_vector_data (const Communicator &comm, const MapToVectors &queries, GatherFunctor &gather_data, const ActionFunctor &act_on_data, const datum *example) |
Send query vectors, receive and answer them with vectors of data, then act on those answers. More... | |
template<typename datum , typename A , typename MapToVectors , typename GatherFunctor , typename ActionFunctor > | |
void | pull_parallel_vector_data (const Communicator &comm, const MapToVectors &queries, GatherFunctor &gather_data, ActionFunctor &act_on_data, const std::vector< datum, A > *example) |
template<typename MapToContainers , typename ActionFunctor , typename Context > | |
void | push_parallel_packed_range (const Communicator &comm, MapToContainers &&data, Context *context, const ActionFunctor &act_on_data) |
template<typename datum , typename MapToVectors , typename GatherFunctor , typename ActionFunctor > | |
void | pull_parallel_vector_data (const Communicator &comm, const MapToVectors &queries, GatherFunctor &gather_data, ActionFunctor &act_on_data, const datum *) |
TIMPI_INT_TYPE (char) | |
TIMPI_INT_TYPE (signed char) | |
TIMPI_INT_TYPE (unsigned char) | |
TIMPI_INT_TYPE (short int) | |
TIMPI_INT_TYPE (unsigned short int) | |
TIMPI_INT_TYPE (int) | |
TIMPI_INT_TYPE (long) | |
TIMPI_INT_TYPE (unsigned long long) | |
TIMPI_FLOAT_TYPE (float) | |
TIMPI_FLOAT_TYPE (double) | |
TIMPI_FLOAT_TYPE (long double) | |
TIMPI_FLOAT_TYPE (TIMPI_DEFAULT_SCALAR_TYPE) | |
template<typename T , typename C , typename A > | |
TIMPI_CONTAINER_TYPE (std::set< T TIMPI_ATTRIBUTES_COMMA C TIMPI_ATTRIBUTES_COMMA A >) | |
template<typename T , typename A > | |
TIMPI_CONTAINER_TYPE (std::vector< T TIMPI_ATTRIBUTES_COMMA A >) | |
TIMPI_PARALLEL_INTEGER_OPS (char) | |
TIMPI_PARALLEL_INTEGER_OPS (signed char) | |
TIMPI_PARALLEL_INTEGER_OPS (unsigned char) | |
TIMPI_PARALLEL_INTEGER_OPS (short int) | |
TIMPI_PARALLEL_INTEGER_OPS (unsigned short int) | |
TIMPI_PARALLEL_INTEGER_OPS (int) | |
TIMPI_PARALLEL_INTEGER_OPS (long) | |
TIMPI_PARALLEL_INTEGER_OPS (unsigned long long) | |
TIMPI_PARALLEL_FLOAT_OPS (float) | |
TIMPI_PARALLEL_FLOAT_OPS (double) | |
TIMPI_PARALLEL_FLOAT_OPS (long double) | |
TIMPI_PARALLEL_FLOAT_OPS (TIMPI_DEFAULT_SCALAR_TYPE) | |
template<typename Context , typename Iter > | |
std::size_t | packed_range_size (const Context *context, Iter range_begin, const Iter range_end) |
Helper function for range packing. More... | |
template<typename Context , typename buffertype , typename Iter > | |
Iter | pack_range (const Context *context, Iter range_begin, const Iter range_end, std::vector< buffertype > &buffer, std::size_t approx_buffer_size) |
Helper function for range packing. More... | |
template<typename Context , typename buffertype , typename OutputIter , typename T > | |
OutputIter | unpack_range (const std::vector< buffertype > &buffer, Context *context, OutputIter out_iter, const T *) |
Helper function for range unpacking. More... | |
template<typename Context , typename buffertype , typename OutputIter , typename T > | |
OutputIter | unpack_range (const typename std::vector< buffertype > &buffer, Context *context, OutputIter out_iter, const T *output_type) |
Decode a range of potentially-variable-size objects from a data array. More... | |
template<typename T > | |
data_type | dataplusint_type () |
Templated function to return the appropriate MPI datatype for use with built-in C types when combined with an int, or MPI_DATATYPE_NULL for types which have no predefined datatype. More... | |
template<> | |
data_type | dataplusint_type< short int > () |
template<> | |
data_type | dataplusint_type< int > () |
template<> | |
data_type | dataplusint_type< long > () |
template<> | |
data_type | dataplusint_type< float > () |
template<> | |
data_type | dataplusint_type< double > () |
template<> | |
data_type | dataplusint_type< long double > () |
template<> | |
data_type | dataplusint_type< TIMPI_DEFAULT_SCALAR_TYPE > () |
template<typename T > | |
std::pair< data_type, std::unique_ptr< StandardType< std::pair< T, int > > > > | dataplusint_type_acquire () |
Status | wait (Request &r) |
Wait for a non-blocking send or receive to finish. More... | |
void | wait (std::vector< Request > &r) |
Wait for all non-blocking operations to finish. More... | |
std::size_t | waitany (std::vector< Request > &r) |
Wait for at least one non-blocking operation to finish. More... | |
template<typename T > | |
StandardType< T > | build_standard_type (const T *example=nullptr) |
template<typename T , typename A > | |
StandardType< typename InnermostType< T >::type > | build_standard_type (const std::vector< T, A > *example=nullptr) |
TIMPI_STANDARD_TYPE (char, MPI_CHAR) | |
TIMPI_STANDARD_TYPE (signed char, MPI_SIGNED_CHAR) | |
TIMPI_STANDARD_TYPE (unsigned char, MPI_UNSIGNED_CHAR) | |
TIMPI_STANDARD_TYPE (short int, MPI_SHORT) | |
TIMPI_STANDARD_TYPE (unsigned short int, MPI_UNSIGNED_SHORT) | |
TIMPI_STANDARD_TYPE (int, MPI_INT) | |
TIMPI_STANDARD_TYPE (unsigned int, MPI_UNSIGNED) | |
TIMPI_STANDARD_TYPE (long, MPI_LONG) | |
TIMPI_STANDARD_TYPE (long long, MPI_LONG_LONG_INT) | |
TIMPI_STANDARD_TYPE (unsigned long, MPI_UNSIGNED_LONG) | |
TIMPI_STANDARD_TYPE (unsigned long long, MPI_UNSIGNED_LONG_LONG) | |
TIMPI_STANDARD_TYPE (float, MPI_FLOAT) | |
TIMPI_STANDARD_TYPE (double, MPI_DOUBLE) | |
TIMPI_STANDARD_TYPE (long double, MPI_LONG_DOUBLE) | |
TIMPI_STANDARD_TYPE (TIMPI_DEFAULT_SCALAR_TYPE,) | |
void | report_here (const char *file, int line, const char *date, const char *time) |
void | report_error (const char *file, int line, const char *date, const char *time) |
template<class ... Args> | |
void | ignore (const Args &...) |
template<class ... Args> | |
void | timpi_ignore (const Args &...) |
template<typename Tnew , typename Told > | |
Tnew | cast_int (Told oldvar) |
void | timpi_version_stdout () |
std::string | timpi_version_string () |
int | get_timpi_version () |
template<typename MapToVectors , typename ActionFunctor , typename std::enable_if< std::is_base_of< DataType, StandardType< typename InnermostType< typename std::remove_const< typename std::remove_reference< MapToVectors >::type::mapped_type::value_type >::type >::type >>::value, int >::type = 0> | |
void | push_parallel_vector_data (const Communicator &comm, MapToVectors &&data, const ActionFunctor &act_on_data) |
Send and receive and act on vectors of data. More... | |
template<typename MapToVectors , typename ActionFunctor , typename Context > | |
void | push_parallel_packed_range (const Communicator &comm, MapToVectors &&data, Context *context, const ActionFunctor &act_on_data) |
Send and receive and act on vectors of data. More... | |
Variables | |
DIE A HORRIBLE DEATH HERE typedef MPI_Comm | communicator |
Communicator object for talking with subsets of processors. More... | |
const unsigned int | any_source |
Processor id meaning "Accept from any source". More... | |
const MessageTag | any_tag = MessageTag(MPI_ANY_TAG) |
Default message tag ids. More... | |
const MessageTag | no_tag = MessageTag(0) |
typedef int TIMPI::CountType |
typedef MPI_Datatype TIMPI::data_type |
Data types for communication.
Definition at line 33 of file data_type.h.
typedef int TIMPI::DispType |
Definition at line 222 of file parallel_implementation.h.
typedef int TIMPI::info |
Info object used by some MPI-3 methods.
Definition at line 78 of file communicator.h.
typedef uint64_t TIMPI::processor_id_type |
Definition at line 53 of file communicator.h.
typedef unsigned int TIMPI::request |
typedef MPI_Status TIMPI::status |
StandardType<T> TIMPI::build_standard_type | ( | const T * | example = nullptr | ) |
Definition at line 181 of file standard_type.h.
Referenced by build_standard_type(), and push_parallel_vector_data().
StandardType<typename InnermostType<T>::type> TIMPI::build_standard_type | ( | const std::vector< T, A > * | example = nullptr | ) |
Definition at line 195 of file standard_type.h.
References build_standard_type().
|
inline |
Definition at line 297 of file timpi_assert.h.
|
inline |
Templated function to return the appropriate MPI datatype for use with built-in C types when combined with an int, or MPI_DATATYPE_NULL for types which have no predefined datatype.
|
inline |
Definition at line 193 of file parallel_implementation.h.
|
inline |
Definition at line 190 of file parallel_implementation.h.
|
inline |
Definition at line 184 of file parallel_implementation.h.
|
inline |
Definition at line 187 of file parallel_implementation.h.
|
inline |
Definition at line 196 of file parallel_implementation.h.
|
inline |
Definition at line 181 of file parallel_implementation.h.
|
inline |
Definition at line 201 of file parallel_implementation.h.
|
inline |
Definition at line 207 of file parallel_implementation.h.
int TIMPI::get_timpi_version | ( | ) |
Definition at line 53 of file timpi_version.C.
Referenced by testVersionNumber(), and timpi_version_string().
|
inline |
Definition at line 54 of file timpi_assert.h.
Referenced by TIMPI::Communicator::alltoall(), TIMPI::Communicator::broadcast(), TIMPI::DataType::DataType(), TIMPI::Communicator::map_broadcast(), TIMPI::Communicator::maxloc(), TIMPI::Communicator::minloc(), TIMPI::Communicator::packed_range_probe(), TIMPI::Communicator::probe(), TIMPI::Communicator::scatter(), and TIMPI::Status::size().
|
inline |
Helper function for range packing.
Encode a range of potentially-variable-size objects to a data array.
The data will be buffered in vectors with lengths that do not exceed the sum of approx_buffer_size
and the size of an individual packed object.
Definition at line 1044 of file packing.h.
References libMesh::Parallel::Packing< T, Enable >::pack(), libMesh::Parallel::Packing< T, Enable >::packable_size(), and libMesh::Parallel::Packing< T, Enable >::packed_size().
Referenced by TIMPI::Communicator::allgather_packed_range(), TIMPI::Communicator::broadcast_packed_range(), TIMPI::Communicator::gather_packed_range(), TIMPI::Communicator::nonblocking_send_packed_range(), TIMPI::Communicator::send_packed_range(), and TIMPI::Communicator::send_receive_packed_range().
|
inline |
Helper function for range packing.
Return the total buffer size needed to encode a range of potentially-variable-size objects to a data array.
Definition at line 1023 of file packing.h.
References libMesh::Parallel::Packing< T, Enable >::packable_size().
Referenced by TIMPI::Communicator::send_packed_range().
void TIMPI::pull_parallel_vector_data | ( | const Communicator & | comm, |
const MapToVectors & | queries, | ||
GatherFunctor & | gather_data, | ||
const ActionFunctor & | act_on_data, | ||
const datum * | example | ||
) |
Send query vectors, receive and answer them with vectors of data, then act on those answers.
The data
map is indexed by processor ids as keys, and for each processor id in the map there should be a vector of query ids to send. For processors to which no data should be sent, there should be no map entry; this will avoid any unnecessary communication. Unless NDEBUG is enabled, TIMPI will assert that no empty map entries exist. In any case empty map entries will not be gathered or acted on.
Queries will be operated on by the queried processor by gather_data(processor_id_type pid, const std::vector<id> & ids, std::vector<datum> & data)
Answer data from each query will be operated on by act_on_data(processor_id_type pid, const std::vector<id> & ids, std::vector<datum> && data);
If a query vector exists for the local processor in the map, gather_data will be called on it directly, and act_on_data will be called on the response directly, without any network operations.
The example pointer may be null; it merely needs to be of the correct type. It's just here because function overloading in C++ is easy, whereas SFINAE is hard and partial template specialization of functions is impossible.
No guarantee about operation ordering is made - this function will attempt to act on data in the order in which it is received.
All receives and actions are completed before this function returns.
Referenced by testPull(), testPullImpl(), testPullPacked(), and testPullVecVecImpl().
void TIMPI::pull_parallel_vector_data | ( | const Communicator & | comm, |
const MapToVectors & | queries, | ||
GatherFunctor & | gather_data, | ||
ActionFunctor & | act_on_data, | ||
const std::vector< datum, A > * | example | ||
) |
Definition at line 960 of file parallel_sync.h.
References any_source, TIMPI::Communicator::get_unique_tag(), TIMPI::Communicator::probe(), push_parallel_vector_data(), TIMPI::Communicator::rank(), TIMPI::Communicator::receive(), TIMPI::Communicator::send(), and wait().
void TIMPI::pull_parallel_vector_data | ( | const Communicator & | comm, |
const MapToVectors & | queries, | ||
GatherFunctor & | gather_data, | ||
ActionFunctor & | act_on_data, | ||
const datum * | |||
) |
Definition at line 866 of file parallel_sync.h.
References push_parallel_vector_data(), TIMPI::Communicator::SENDRECEIVE, TIMPI::Communicator::size(), and TIMPI::Communicator::sync_type().
void TIMPI::push_parallel_packed_range | ( | const Communicator & | comm, |
MapToVectors && | data, | ||
Context * | context, | ||
const ActionFunctor & | act_on_data | ||
) |
Send and receive and act on vectors of data.
Similar to push_parallel_vector_data, except the vectors are packed and unpacked using the Parallel::Packing routines.
The data
map is indexed by processor ids as keys, and for each processor id in the map there should be a vector of data to send. For processors to which no data should be sent, there should be no map entry; this will avoid any unnecessary communication. Unless NDEBUG is enabled, TIMPI will assert that no empty map entries exist. In any case empty map entries will not be acted on.
Data which is received from other processors will be operated on by act_on_data(processor_id_type pid, std::vector<datum> && data)
If data exists for the local processor in the map, it will be acted on directly, without any network operations. This also avoids packing and unpacking the data, so no side effects of those operations should be assumed.
No guarantee about operation ordering is made - this function will attempt to act on data in the order in which it is received.
All receives and actions are completed before this function returns.
If you wish to use move semantics within the data received in act_on_data
, pass data itself as an rvalue reference.
Referenced by testPushPackedImpl(), testPushPackedImplMove(), and testPushPackedNested().
void TIMPI::push_parallel_packed_range | ( | const Communicator & | comm, |
MapToContainers && | data, | ||
Context * | context, | ||
const ActionFunctor & | act_on_data | ||
) |
Definition at line 658 of file parallel_sync.h.
References TIMPI::Communicator::ALLTOALL_COUNTS, TIMPI::Communicator::NBX, TIMPI::Communicator::nonblocking_receive_packed_range(), TIMPI::Communicator::nonblocking_send_packed_range(), TIMPI::Communicator::packed_range_probe(), TIMPI::Communicator::possibly_receive_packed_range(), TIMPI::detail::push_parallel_alltoall_helper(), TIMPI::detail::push_parallel_nbx_helper(), TIMPI::detail::push_parallel_roundrobin_helper(), TIMPI::Communicator::send_receive_packed_range(), TIMPI::Communicator::SENDRECEIVE, TIMPI::Communicator::sync_type(), and TIMPI::Request::wait().
void TIMPI::push_parallel_vector_data | ( | const Communicator & | comm, |
MapToVectors && | data, | ||
const ActionFunctor & | act_on_data | ||
) |
Send and receive and act on vectors of data.
The data
map is indexed by processor ids as keys, and for each processor id in the map there should be a vector of data to send. For processors to which no data should be sent, there should be no map entry; this will avoid any unnecessary communication. Unless NDEBUG is enabled, TIMPI will assert that no empty map entries exist. In any case empty map entries will not be acted on.
Data which is received from other processors will be operated on by act_on_data(processor_id_type pid, std::vector<datum> && data)
If data exists for the local processor in the map, it will be acted on directly, without any network operations.
No guarantee about operation ordering is made - this function will attempt to act on data in the order in which it is received.
All receives and actions are completed before this function returns.
If you wish to use move semantics within the data received in act_on_data
, pass data itself as an rvalue reference.
This overload should be automatically selected for data which has a StandardType
specialization defined, so that we can directly send it without serializing it into buffers beforehand.
This overload should be automatically selected for data which has a Packing
specialization defined, where we must serialize it into buffers before sending.
Definition at line 755 of file parallel_sync.h.
References TIMPI::Communicator::ALLTOALL_COUNTS, build_standard_type(), TIMPI::Communicator::NBX, TIMPI::Communicator::possibly_receive(), TIMPI::detail::push_parallel_alltoall_helper(), TIMPI::detail::push_parallel_nbx_helper(), TIMPI::detail::push_parallel_roundrobin_helper(), TIMPI::Communicator::receive(), TIMPI::Communicator::send(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::SENDRECEIVE, and TIMPI::Communicator::sync_type().
Referenced by pull_parallel_vector_data(), testEmptyEntry(), testPush(), testPushImpl(), testPushMove(), testPushMultimapImpl(), testPushMultimapVecVecImpl(), testPushPackedDispatch(), testPushPackedFailureCase(), testPushPackedOneTuple(), and testPushVecVecImpl().
void TIMPI::report_error | ( | const char * | file, |
int | line, | ||
const char * | date, | ||
const char * | time | ||
) |
Definition at line 43 of file timpi_assert.C.
References report_here().
void TIMPI::report_here | ( | const char * | file, |
int | line, | ||
const char * | date, | ||
const char * | time | ||
) |
Definition at line 29 of file timpi_assert.C.
References TIMPI::Communicator::rank().
Referenced by report_error().
TIMPI::TIMPI_CONTAINER_TYPE | ( | std::set< T TIMPI_ATTRIBUTES_COMMA C TIMPI_ATTRIBUTES_COMMA A > | ) |
TIMPI::TIMPI_CONTAINER_TYPE | ( | std::vector< T TIMPI_ATTRIBUTES_COMMA A > | ) |
TIMPI::TIMPI_FLOAT_TYPE | ( | float | ) |
TIMPI::TIMPI_FLOAT_TYPE | ( | double | ) |
TIMPI::TIMPI_FLOAT_TYPE | ( | long | double | ) |
TIMPI::TIMPI_FLOAT_TYPE | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
|
inline |
Definition at line 286 of file timpi_assert.h.
Referenced by TIMPI::StandardType< std::pair< T1, T2 >, typename std::enable_if< StandardType< typename std::remove_const< T1 >::type >::is_fixed_type &&StandardType< T2 >::is_fixed_type >::type >::StandardType(), TIMPI::StandardType< std::array< T, N >, typename std::enable_if< StandardType< T >::is_fixed_type >::type >::StandardType(), and TIMPI::StandardType< std::tuple< Types... >, typename std::enable_if< CheckAllFixedTypes< Types... >::is_fixed_type >::type >::StandardType().
TIMPI::TIMPI_INT_TYPE | ( | char | ) |
TIMPI::TIMPI_INT_TYPE | ( | signed | char | ) |
TIMPI::TIMPI_INT_TYPE | ( | unsigned | char | ) |
TIMPI::TIMPI_INT_TYPE | ( | short | int | ) |
TIMPI::TIMPI_INT_TYPE | ( | unsigned short | int | ) |
TIMPI::TIMPI_INT_TYPE | ( | int | ) |
TIMPI::TIMPI_INT_TYPE | ( | long | ) |
TIMPI::TIMPI_INT_TYPE | ( | unsigned long | long | ) |
TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | float | ) |
TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | double | ) |
TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | long | double | ) |
TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | char | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | signed | char | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | unsigned | char | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | short | int | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | unsigned short | int | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | int | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | long | ) |
TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | unsigned long | long | ) |
TIMPI::TIMPI_STANDARD_TYPE | ( | char | , |
MPI_CHAR | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | signed | char, |
MPI_SIGNED_CHAR | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned | char, |
MPI_UNSIGNED_CHAR | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | short | int, |
MPI_SHORT | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned short | int, |
MPI_UNSIGNED_SHORT | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | int | , |
MPI_INT | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned | int, |
MPI_UNSIGNED | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | long | , |
MPI_LONG | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | long | long, |
MPI_LONG_LONG_INT | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned | long, |
MPI_UNSIGNED_LONG | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned long | long, |
MPI_UNSIGNED_LONG_LONG | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | float | , |
MPI_FLOAT | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | double | , |
MPI_DOUBLE | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | long | double, |
MPI_LONG_DOUBLE | |||
) |
TIMPI::TIMPI_STANDARD_TYPE | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
void TIMPI::timpi_version_stdout | ( | ) |
Definition at line 26 of file timpi_version.C.
References timpi_version_string().
Referenced by main().
std::string TIMPI::timpi_version_string | ( | ) |
Definition at line 31 of file timpi_version.C.
References get_timpi_version().
Referenced by testVersionString(), and timpi_version_stdout().
|
inline |
Decode a range of potentially-variable-size objects from a data array.
We take out_iter
by value for maximum compatibility, but we return it afterward for the use of code that needs to unpack multiple buffers to the same output iterator.
|
inline |
Helper function for range unpacking.
We take out_iter
by value for maximum compatibility, but we return it afterward for the use of code that needs to unpack multiple buffers to the same output iterator.
Definition at line 1103 of file packing.h.
References libMesh::Parallel::Packing< T, Enable >::packed_size(), and libMesh::Parallel::Packing< T, Enable >::unpack().
Referenced by TIMPI::Communicator::allgather_packed_range(), TIMPI::Communicator::broadcast_packed_range(), TIMPI::Communicator::gather_packed_range(), TIMPI::Communicator::receive_packed_range(), TIMPI::PostWaitUnpackBuffer< Container, Context, OutputIter, T >::run(), and TIMPI::Communicator::send_receive_packed_range().
Wait for a non-blocking send or receive to finish.
Definition at line 135 of file request.h.
References TIMPI::Request::wait().
Referenced by pull_parallel_vector_data(), testIrecvSend(), testIsendRecv(), testRecvIsendSets(), and testRecvIsendVecVecs().
void TIMPI::wait | ( | std::vector< Request > & | r | ) |
std::size_t TIMPI::waitany | ( | std::vector< Request > & | r | ) |
Wait for at least one non-blocking operation to finish.
Return the index of the request which completed.
Definition at line 219 of file request.C.
References TIMPI::Request::_prior_request, TIMPI::Request::_request, TIMPI::Request::get(), TIMPI::Request::null_request, and TIMPI::Request::post_wait_work.
Referenced by testNonblockingWaitany().
const unsigned int TIMPI::any_source |
Processor id meaning "Accept from any source".
Definition at line 83 of file communicator.h.
Referenced by TIMPI::Communicator::packed_range_probe(), TIMPI::Communicator::possibly_receive(), TIMPI::Communicator::possibly_receive_packed_range(), TIMPI::Communicator::probe(), pull_parallel_vector_data(), TIMPI::detail::push_parallel_alltoall_helper(), TIMPI::detail::push_parallel_nbx_helper(), TIMPI::Communicator::receive(), and TIMPI::Communicator::send_receive().
const MessageTag TIMPI::any_tag = MessageTag(MPI_ANY_TAG) |
Default message tag ids.
Definition at line 114 of file message_tag.h.
typedef int TIMPI::communicator |
Communicator object for talking with subsets of processors.
Definition at line 73 of file communicator.h.
const MessageTag TIMPI::no_tag = MessageTag(0) |
Definition at line 119 of file message_tag.h.