|
TIMPI
|
Namespaces | |
| namespace | detail |
Typedefs | |
| typedef uint8_t | processor_id_type |
| typedef MPI_Info | info |
| Info object used by some MPI-3 methods. | |
| typedef MPI_Datatype | data_type |
| Data types for communication. | |
| typedef MPI_Aint | DispType |
| typedef MPI_Request | request |
| Request object for non-blocking I/O. | |
| typedef MPI_Status | status |
| Status object for querying messages. | |
| typedef MPI_Count | CountType |
Variables | |
| DIE A HORRIBLE DEATH HERE typedef MPI_Comm | communicator |
| Communicator object for talking with subsets of processors. | |
| const unsigned int | any_source |
| Processor id meaning "Accept from any source". | |
| const MessageTag | any_tag = MessageTag(MPI_ANY_TAG) |
| Default message tag ids. | |
| const MessageTag | no_tag = MessageTag(0) |
Data types for communication.
Definition at line 33 of file data_type.h.
Definition at line 216 of file parallel_implementation.h.
Info object used by some MPI-3 methods.
Definition at line 79 of file communicator.h.
Definition at line 54 of file communicator.h.
| 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(), and cast_int().
| StandardType< T > TIMPI::build_standard_type | ( | const T * | example = nullptr | ) |
Definition at line 181 of file standard_type.h.
References cast_int().
Referenced by build_standard_type(), and push_parallel_vector_data().
|
inline |
Definition at line 297 of file timpi_assert.h.
References cast_int().
Referenced by TIMPI::SemiPermanent::add(), TIMPI::Request::add_post_wait_work(), TIMPI::Request::add_prior_request(), TIMPI::Communicator::allgather(), TIMPI::Communicator::assign(), TIMPI::Communicator::barrier(), TIMPI::Communicator::broadcast(), TIMPI::Communicator::broadcast(), TIMPI::BuildStandardTypeVector< n_minus_i >::build(), build_standard_type(), build_standard_type(), cast_int(), TIMPI::Request::cleanup(), TIMPI::Communicator::clear(), TIMPI::DataType::commit(), createContainer(), createMapContainer(), createSet(), dataplusint_type(), dataplusint_type< double >(), dataplusint_type< float >(), dataplusint_type< int >(), dataplusint_type< long >(), dataplusint_type< long double >(), dataplusint_type< short int >(), dataplusint_type_acquire(), TIMPI::DataType::DataType(), TIMPI::Communicator::dereference_unique_tag(), TIMPI::Communicator::duplicate(), fake_stringy_number(), TIMPI::FillDisplacementArray< n_minus_i >::fill(), fill_data(), fill_data(), fill_scalar_data(), fill_scalar_data(), fill_vector_data(), fill_vector_data(), TIMPI::DataType::free(), get_timpi_version(), TIMPI::Communicator::get_unique_tag(), main(), TIMPI::ManageOp::ManageOp(), TIMPI::ManageType::ManageType(), TIMPI::Communicator::map_max(), TIMPI::Communicator::max(), TIMPI::Communicator::maxloc(), TIMPI::Communicator::maxloc(), TIMPI::Communicator::maxloc(), TIMPI::MessageTag::MessageTag(), TIMPI::Communicator::min(), TIMPI::Communicator::minloc(), TIMPI::Communicator::minloc(), TIMPI::Communicator::minloc(), my_get(), my_get(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_inserter(), my_resize(), TIMPI::Communicator::nonblocking_barrier(), TIMPI::Communicator::nonblocking_receive_packed_range(), TIMPI::Communicator::nonblocking_receive_packed_range(), TIMPI::Communicator::nonblocking_send_packed_range(), TIMPI::Communicator::nonblocking_send_packed_range(), TIMPI::casting_compare< Comp >::operator()(), TIMPI::casting_compare< Comp >::operator()(), TIMPI::MessageTag::operator=(), TIMPI::Request::operator=(), TIMPI::Request::operator=(), TIMPI::MessageTag::operator=(), TIMPI::StandardType< TIMPI_DEFAULT_SCALAR_TYPE >::operator=(), 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 >::operator=(), TIMPI::StandardType< std::array< T, N >, typename std::enable_if< StandardType< T >::is_fixed_type >::type >::operator=(), TIMPI::StandardType< std::tuple< Types... >, typename std::enable_if< CheckAllFixedTypes< Types... >::is_fixed_type >::type >::operator=(), libMesh::Parallel::Packing< std::unique_ptr< int > >::pack(), pack_range(), packed_range_size(), TIMPI::Communicator::packed_size_of(), TIMPI::Communicator::possibly_receive(), TIMPI::Communicator::possibly_receive(), TIMPI::Communicator::possibly_receive(), TIMPI::PostWaitUnpackNestedBuffer< Container >::PostWaitUnpackNestedBuffer(), TIMPI::Communicator::probe(), pull_parallel_vector_data(), pull_parallel_vector_data(), TIMPI::detail::push_parallel_alltoall_helper(), push_parallel_packed_range(), TIMPI::detail::push_parallel_roundrobin_helper(), push_parallel_vector_data(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive_packed_range(), TIMPI::Communicator::reference_unique_tag(), report_error(), report_here(), TIMPI::Request::Request(), TIMPI::PostWaitUnpackNestedBuffer< Container >::run(), TIMPI::Communicator::semiverify(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send(), TIMPI::Communicator::send_mode(), TIMPI::Communicator::send_packed_range(), TIMPI::Communicator::send_packed_range(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive(), TIMPI::Communicator::send_receive_packed_range(), TIMPI::Communicator::send_receive_packed_range(), TIMPI::Status::size(), TIMPI::Communicator::split(), TIMPI::Communicator::split_by_type(), TIMPI::StandardType< std::array< T, N >, typename std::enable_if< StandardType< T >::is_fixed_type >::type >::StandardType(), 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::tuple< Types... >, typename std::enable_if< CheckAllFixedTypes< Types... >::is_fixed_type >::type >::StandardType(), TIMPI::StandardType< TIMPI_DEFAULT_SCALAR_TYPE >::StandardType(), TIMPI::StandardType< std::array< T, N >, typename std::enable_if< StandardType< T >::is_fixed_type >::type >::StandardType(), 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::tuple< Types... >, typename std::enable_if< CheckAllFixedTypes< Types... >::is_fixed_type >::type >::StandardType(), TIMPI::StandardType< TIMPI_DEFAULT_SCALAR_TYPE >::StandardType(), stringy_number(), TIMPI::Communicator::sync_type(), TIMPI::Communicator::sync_type(), TIMPI::Status::tag(), TIMPI::Request::test(), TIMPI::Request::test(), testAllGather(), testAllGatherEmptyVectorString(), testAllGatherHalfEmptyVectorString(), testAllGatherString(), testAllGatherVectorString(), testAllGatherVectorVector(), testAllGatherVectorVectorInPlace(), testAllGatherVectorVectorPacked(), testArrayContainerAllGather(), testArrayStringAllGather(), testBigUnion(), testBroadcast(), testBroadcastArrayType(), testBroadcastNestedType(), testBroadcastString(), testContainerAllGather(), testContainerBroadcast(), testContainerSendReceive(), testEmptyEntry(), tester(), tester(), tester(), tester(), tester(), tester(), tester(), tester(), tester(), tester(), tester(), testGather(), testGatherString(), testGatherString2(), testGettableStringAllGather(), testGetUniqueTagAuto(), testGetUniqueTagManual(), testGetUniqueTagOverlap(), testInfinityMax(), testInfinityMin(), testIrecvSend(), testIsendRecv(), testLargeSetUnion(), testListStringAllGather(), testMapContainerAllGather(), testMapMap(), testMapMax(), testMapSet(), testMax(), testMaxloc(), testMaxlocBool(), testMaxlocDouble(), testMaxlocPair(), testMaxVecBool(), testMin(), testMinLarge(), testMinloc(), testMinlocBool(), testMinlocDouble(), testMinlocPair(), testMinVecBool(), testMPIULongMin(), testNestingAllGather(), testNonblockingMax(), testNonblockingMin(), testNonblockingString(), testNonblockingSum(), testNonblockingTest(), testNonblockingWaitany(), testNonFixedTypeMapMax(), testNonFixedTypeSum(), testNullAllGather(), testNullSendReceive(), testPackedSetUnion(), testPairContainerAllGather(), testPairStringAllGather(), testPull(), testPullImpl(), testPullPacked(), testPullVecVecImpl(), testPush(), testPushImpl(), testPushMove(), testPushMultimapImpl(), testPushMultimapVecVecImpl(), testPushPackedDispatch(), testPushPackedFailureCase(), testPushPackedImpl(), testPushPackedImplMove(), testPushPackedNested(), testPushPackedNestedImpl(), testPushPackedOneTuple(), testPushVecVecImpl(), testRecvIsendSets(), testRecvIsendVecVecs(), testScatter(), testSemiVerifyInf(), testSemiVerifyString(), testSemiVerifyType(), testSemiVerifyVector(), testSendRecvVecVecs(), testSplit(), testSplitByType(), testStandardTypeAssignment(), testStringSyncType(), testSum(), testSumOpFunction(), testTupleContainerAllGather(), testTupleStringAllGather(), testUnion(), testVectorOfContainersAllGather(), testVectorOfContainersBroadcast(), testVectorStringAllGather(), testVersionNumber(), testVersionString(), timpi_version_string(), TIMPI::TIMPIInit::TIMPIInit(), libMesh::Parallel::Packing< std::unique_ptr< int > >::unpack(), unpack_range(), TIMPI::Communicator::verify(), TIMPI::Request::wait(), wait(), wait(), TIMPI::ManageOp::~ManageOp(), TIMPI::ManageType::~ManageType(), TIMPI::PostWaitUnpackNestedBuffer< Container >::~PostWaitUnpackNestedBuffer(), and TIMPI::TIMPIInit::~TIMPIInit().
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.
Definition at line 81 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 193 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 190 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 184 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 187 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 196 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 181 of file parallel_implementation.h.
References cast_int().
|
inline |
Definition at line 201 of file parallel_implementation.h.
References cast_int().
| int TIMPI::get_timpi_version | ( | ) |
Definition at line 53 of file timpi_version.C.
References cast_int().
Referenced by testVersionNumber(), and timpi_version_string().
Definition at line 54 of file timpi_assert.h.
Referenced by TIMPI::DataType::DataType(), TIMPI::Communicator::maxloc(), TIMPI::Communicator::minloc(), TIMPI::Communicator::probe(), 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 cast_int(), 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::nonblocking_send_packed_range(), TIMPI::Communicator::nonblocking_send_packed_range(), TIMPI::Communicator::send_packed_range(), TIMPI::Communicator::send_packed_range(), TIMPI::Communicator::send_receive_packed_range(), TIMPI::Communicator::send_receive_packed_range(), and unpack_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 cast_int(), and libMesh::Parallel::Packing< T, Enable >::packable_size().
Referenced by TIMPI::Communicator::send_packed_range(), TIMPI::Communicator::send_packed_range(), and unpack_range().
| void TIMPI::pull_parallel_vector_data | ( | const Communicator & | comm, |
| const MapToVectors & | queries, | ||
| GatherFunctor & | gather_data, | ||
| ActionFunctor & | act_on_data, | ||
| const datum * | |||
| ) |
Definition at line 867 of file parallel_sync.h.
References cast_int(), push_parallel_vector_data(), TIMPI::Communicator::SENDRECEIVE, TIMPI::Communicator::size(), and TIMPI::Communicator::sync_type().
| 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 961 of file parallel_sync.h.
References any_source, cast_int(), 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, | ||
| 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 queries 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) where the ids are those sent by the querying processor pid.
Answer data from each query will be operated on by the querying processor by act_on_data(processor_id_type pid, const std::vector<id> & ids,
std::vector<datum> && data); where the ids are those sent to the queried processor pid.
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::push_parallel_packed_range | ( | const Communicator & | comm, |
| MapToContainers && | data, | ||
| Context * | context, | ||
| const ActionFunctor & | act_on_data | ||
| ) |
Definition at line 659 of file parallel_sync.h.
References TIMPI::Communicator::ALLTOALL_COUNTS, cast_int(), 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, 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_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 756 of file parallel_sync.h.
References TIMPI::Communicator::ALLTOALL_COUNTS, build_standard_type(), cast_int(), 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(), pull_parallel_vector_data(), testEmptyEntry(), testPush(), testPushImpl(), testPushMove(), testPushMultimapImpl(), testPushMultimapVecVecImpl(), testPushPackedDispatch(), testPushPackedFailureCase(), testPushPackedOneTuple(), and testPushVecVecImpl().
Definition at line 43 of file timpi_assert.C.
References cast_int(), and report_here().
Definition at line 29 of file timpi_assert.C.
References cast_int().
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 | ( | double | ) |
| TIMPI::TIMPI_FLOAT_TYPE | ( | float | ) |
| TIMPI::TIMPI_FLOAT_TYPE | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
Definition at line 286 of file timpi_assert.h.
Referenced by TIMPI::StandardType< std::array< T, N >, typename std::enable_if< StandardType< T >::is_fixed_type >::type >::StandardType(), 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(), 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 | ( | int | ) |
| TIMPI::TIMPI_INT_TYPE | ( | long | ) |
| TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | double | ) |
| TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | float | ) |
| TIMPI::TIMPI_PARALLEL_FLOAT_OPS | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
| TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | char | ) |
| TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | int | ) |
| TIMPI::TIMPI_PARALLEL_INTEGER_OPS | ( | long | ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | double | , |
| MPI_DOUBLE | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | long double | , |
| MPI_LONG_DOUBLE | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | long long | , |
| MPI_LONG_LONG_INT | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | signed char | , |
| MPI_SIGNED_CHAR | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | TIMPI_DEFAULT_SCALAR_TYPE | ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned char | , |
| MPI_UNSIGNED_CHAR | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned int | , |
| MPI_UNSIGNED | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned long long | , |
| MPI_UNSIGNED_LONG_LONG | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned long | , |
| MPI_UNSIGNED_LONG | |||
| ) |
| TIMPI::TIMPI_STANDARD_TYPE | ( | unsigned short int | , |
| MPI_UNSIGNED_SHORT | |||
| ) |
| 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 cast_int(), and get_timpi_version().
Referenced by testVersionString(), and timpi_version_stdout().
|
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 cast_int(), libMesh::Parallel::Packing< T, Enable >::packed_size(), and libMesh::Parallel::Packing< T, Enable >::unpack().
Referenced by TIMPI::Communicator::receive_packed_range(), TIMPI::PostWaitUnpackBuffer< Container, Context, OutputIter, T >::run(), TIMPI::Communicator::send_receive_packed_range(), TIMPI::Communicator::send_receive_packed_range(), and unpack_range().
|
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.
References pack_range(), packed_range_size(), and unpack_range().
Wait for a non-blocking send or receive to finish.
Definition at line 135 of file request.h.
References cast_int().
Referenced by pull_parallel_vector_data(), testIrecvSend(), testIsendRecv(), testRecvIsendSets(), and testRecvIsendVecVecs().
Wait for all non-blocking operations to finish.
Definition at line 213 of file request.C.
References cast_int().
| 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.
Referenced by testNonblockingWaitany().
Processor id meaning "Accept from any source".
Definition at line 84 of file communicator.h.
Referenced by TIMPI::Communicator::possibly_receive(), TIMPI::Communicator::possibly_receive(), TIMPI::Communicator::probe(), pull_parallel_vector_data(), TIMPI::detail::push_parallel_alltoall_helper(), TIMPI::detail::push_parallel_nbx_helper(), TIMPI::Communicator::receive(), TIMPI::Communicator::receive(), TIMPI::Communicator::send_receive(), and testNonblockingString().
| const MessageTag TIMPI::any_tag = MessageTag(MPI_ANY_TAG) |
Default message tag ids.
Definition at line 114 of file message_tag.h.
Communicator object for talking with subsets of processors.
Definition at line 74 of file communicator.h.
| const MessageTag TIMPI::no_tag = MessageTag(0) |
Definition at line 119 of file message_tag.h.