Distributed object that implements the transfer of elements between locations that is performed during container redistribution.
More...
|
typedef std::vector< PartitionInfo > | local_partition_information |
|
typedef boost::remove_pointer< typename BaseContainers::value_type::second_type >::type | base_container_type |
|
using | size_type = rmi_handle::size_type |
|
|
void | remap_domain (typename Partition::value_type::index_type first, typename Partition::value_type::index_type last, Partition const &partition, Mapper const &mapper, std::vector< bc_info_type > &partial_info) |
|
void | exchange_data (std::vector< bc_info_type > &partial_info, Partition const &partition, Mapper const &mapper, BaseContainers &m_bcontainers, NewBaseContainers &m_new_bcontainers) |
|
|
typedef PartitionInfo | bc_info_type |
|
typedef interval_set_type::element_type | index_type |
|
|
std::vector< PartitionInfo > | m_sender_info |
| partition information that characterizes data currently stored on a location.
|
|
std::vector< PartitionInfo > | m_receiver_info |
| partition information that characterizes data that will be stored on a location after redistribution.
|
|
base_container_ordering * | m_ordering |
| ordering of the base containers
|
|
ElemAssign | m_assign |
| functor used to assign to base container elements
|
|
template<typename BaseContainers, typename PartitionInfo, typename ElemAssign = set_element_assign, typename BaseContainerFactory = construct_bc_with_dom< typename boost::remove_pointer< typename BaseContainers::value_type::second_type>::type >>
struct stapl::cm_impl::distributor< BaseContainers, PartitionInfo, ElemAssign, BaseContainerFactory >
Distributed object that implements the transfer of elements between locations that is performed during container redistribution.
- Template Parameters
-
BaseContainers | Boost ICL structure that is used to store base containers. |
PartitionInfo | tuple that represents metadata of a partition to be redistributed. The elements of the tuple are the partition domain, partition id, destination location, and vector of locations that contribute to the partition. |
ElemAssign | Functor that implements assignment to a base container element. Required because graph base containers implement vp_set instead of set_element. |
◆ receive_data()
template<typename BaseContainers , typename PartitionInfo , typename ElemAssign = set_element_assign, typename BaseContainerFactory = construct_bc_with_dom< typename boost::remove_pointer< typename BaseContainers::value_type::second_type>::type >>
void stapl::cm_impl::distributor< BaseContainers, PartitionInfo, ElemAssign, BaseContainerFactory >::receive_data |
( |
cid_type |
cid, |
|
|
data_set_type const & |
incoming_data |
|
) |
| |
Receives a subset of elements that will be stored in a given bContainer after redistribution.
- Parameters
-
cid | Id of the bContainer that will store the elements. |
incoming_data | map of (gid, value) pairs that is the set of elements to insert into the new bContainer. |
The method may be called multiple times for a given bContainer depending on the current distribution of elements and the desired distribution.
◆ operator()()
template<typename BaseContainers , typename PartitionInfo , typename ElemAssign = set_element_assign, typename BaseContainerFactory = construct_bc_with_dom< typename boost::remove_pointer< typename BaseContainers::value_type::second_type>::type >>
template<typename Partition , typename Mapper >
void stapl::cm_impl::distributor< BaseContainers, PartitionInfo, ElemAssign, BaseContainerFactory >::operator() |
( |
Partition const & |
partition, |
|
|
Mapper const & |
mapper |
|
) |
| |
◆ get_location_md()
Returns the location metadata of the location this object registered in. noexcept
noexcept
◆ advance_epoch()
void stapl::p_object::advance_epoch |
( |
void |
| ) |
|
|
inherited |
Advances the epoch of the object.
Advancing the epoch will flush any pending RMIs. It will also increase the epoch of the current gang if the object is not a named object.
◆ unlock()
void stapl::p_object::unlock |
( |
void |
| ) |
|
|
inherited |
Used by lock_guard
functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
◆ lock()
void stapl::p_object::lock |
( |
void |
| ) |
|
|
inherited |
Used by lock_guard
functionality in method of derived classes to request atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
◆ try_lock()
bool stapl::p_object::try_lock |
( |
void |
| ) |
|
|
inherited |
Attempt to maintain atomicity with respect to incoming RMIs.
Mutates counter in the associated runqueue.
- Returns
true
if the lock was able to be acquired. false
if it is already locked.
The documentation for this struct was generated from the following file: