vt
1.5.0
(Virtual Transport)
|
Go to the documentation of this file.
44 #if !defined INCLUDED_VT_RDMAHANDLE_SUB_HANDLE_H
45 #define INCLUDED_VT_RDMAHANDLE_SUB_HANDLE_H
54 #include <unordered_map>
56 namespace vt {
namespace rdma {
64 template <
typename T, HandleEnum E,
typename IndexT>
74 SubInfo(uint64_t in_count, uint64_t in_offset)
84 ProxyType in_proxy,
bool in_is_migratable, IndexT in_range,
90 typename IndexT::DenseIndexType
linearize(IndexT idx);
100 void get(IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset);
105 IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset
109 IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset
112 void put(IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset);
115 IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset,
120 IndexT
const& idx,
Lock l, T* ptr, uint64_t len,
int offset,
124 T
fetchOp(IndexT
const& idx,
Lock l, T ptr,
int offset, MPI_Op op);
128 template <
typename Callable>
129 void access(IndexT idx,
Lock l, Callable fn, uint64_t offset);
165 template <mapping::ActiveMapTypedFnType<IndexT> map_fn>
167 bool in_is_migratable, IndexT in_range,
bool in_dense_start_with_zero
170 bool in_is_migratable, IndexT in_range,
bool in_dense_start_with_zero,
175 template <
typename U>
std::size_t getNumHandles() const
Definition: sub_handle.impl.h:471
void migratedInIndex(IndexT index)
Definition: sub_handle.impl.h:554
void waitForHandleReady(Handle< U, E > const &h)
Definition: sub_handle.impl.h:517
bool is_migratable_
Definition: sub_handle.h:180
int getOrderedOffset(IndexT idx, NodeType home_node)
Definition: sub_handle.impl.h:163
Lock
Definition: lock_mpi.h:52
IndexInfo fetchInfo(IndexT const &idx)
Definition: sub_handle.impl.h:228
IndexT range_
Definition: sub_handle.h:182
void setCollectionExpected(std::size_t count)
Definition: sub_handle.impl.h:539
IndexInfo resolveLocation(IndexT const &idx)
Definition: sub_handle.impl.h:310
vt::objgroup::proxy::Proxy< SubHandle< T, E, IndexT > > ProxyType
Definition: sub_handle.h:67
std::vector< IndexT > migrate_out_
Definition: sub_handle.h:195
bool dense_start_with_zero_
Definition: sub_handle.h:199
SubInfo(uint64_t in_count, uint64_t in_offset)
Definition: sub_handle.h:74
void deleteHandle()
Definition: sub_handle.impl.h:481
int64_t HandlerType
Used to hold a handler ID which identifier a function pointer/context.
Definition: types_type.h:63
Definition: sub_handle.h:72
bool isUniform() const
Definition: sub_handle.h:126
uint64_t count_
Definition: sub_handle.h:78
vt::HandlerType map_han_
Definition: sub_handle.h:181
void stageLocalIndex(IndexT index, uint64_t count)
Definition: sub_handle.impl.h:434
std::size_t getNumDeletedHandles() const
Definition: sub_handle.impl.h:486
PhysicalResourceType NodeType
Used to hold the current node/rank or the number of nodes.
Definition: types_type.h:57
std::size_t getCount(IndexT const &idx, Lock l=Lock::Shared)
Definition: sub_handle.impl.h:337
std::vector< IndexT > migrate_in_
Definition: sub_handle.h:196
void migratedOutIndex(IndexT index)
Definition: sub_handle.impl.h:544
std::unordered_map< IndexT, SubInfo > sub_handles_
Definition: sub_handle.h:183
void get(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset)
Definition: sub_handle.impl.h:327
RequestHolder rget(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset)
Definition: sub_handle.impl.h:347
void put(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset)
Definition: sub_handle.impl.h:369
RequestHolder rput(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset)
Definition: sub_handle.impl.h:358
RequestHolder raccum(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset, MPI_Op op)
Definition: sub_handle.impl.h:379
uint64_t offset_
Definition: sub_handle.h:79
void initialize(ProxyType in_proxy, bool in_is_migratable, IndexT in_range, vt::HandlerType map_han, bool in_dense_start_with_zero)
Definition: sub_handle.impl.h:54
T fetchOp(IndexT const &idx, Lock l, T ptr, int offset, MPI_Op op)
Definition: sub_handle.impl.h:402
bool uniform_size_
Definition: sub_handle.h:192
uint64_t totalLocalCount() const
Definition: sub_handle.impl.h:462
bool mpi2_
Definition: sub_handle.h:191
Definition: request_holder.h:56
bool ordered_opt_
Definition: sub_handle.h:197
std::vector< IndexT > sub_layout_
Definition: sub_handle.h:185
Definition: activefn.h:51
static void destroyCollective(ProxyType proxy)
Definition: sub_handle.impl.h:528
std::size_t collection_expected_count_
Definition: sub_handle.h:194
void destroy()
Definition: sub_handle.impl.h:522
std::vector< uint64_t > sub_prefix_
Definition: sub_handle.h:186
NodeType getHomeNode(IndexT const &idx)
Definition: sub_handle.impl.h:155
std::unordered_map< IndexT, std::size_t > sub_handles_staged_
Definition: sub_handle.h:184
Handle< T, E, IndexT > addLocalIndex(IndexT index, uint64_t count)
Definition: sub_handle.impl.h:423
Handle< uint64_t, E > loc_handle_
Definition: sub_handle.h:188
void makeSubHandles(bool initial=true)
Definition: sub_handle.impl.h:67
IndexT::DenseIndexType linearize(IndexT idx)
Definition: sub_handle.impl.h:145
std::size_t count_if_uniform_
Definition: sub_handle.h:193
std::size_t getCollectionExpected() const
Definition: sub_handle.impl.h:534
Definition: debug_config.h:63
ProxyType proxy_
Definition: sub_handle.h:179
void accum(IndexT const &idx, Lock l, T *ptr, uint64_t len, int offset, MPI_Op op)
Definition: sub_handle.impl.h:391
void afterLB()
Definition: sub_handle.impl.h:574
bool ready_
Definition: sub_handle.h:190
Handle< T, E > data_handle_
Definition: sub_handle.h:187
Definition: index_info.h:51
Handle specialization for index-level RDMA access (overdecomposed)
Definition: handle.fwd.h:58
std::unordered_map< IndexT, int > ordered_local_offset_
Definition: sub_handle.h:198
bool ready() const
Definition: sub_handle.h:145
Definition: sub_handle.impl.h:565
std::size_t deleted_count_
Definition: sub_handle.h:200
std::size_t getNumActiveHandles() const
Definition: sub_handle.impl.h:476
static ProxyType construct(bool in_is_migratable, IndexT in_range, bool in_dense_start_with_zero)
Definition: sub_handle.impl.h:493
void updateInfo(IndexT const &idx, IndexInfo info, NodeType home)
Definition: sub_handle.impl.h:187
void checkChanged(impl::ReduceLBMsg *msg)
Definition: sub_handle.impl.h:592
void access(IndexT idx, Lock l, Callable fn, uint64_t offset)
Definition: sub_handle.impl.h:413
Cache< IndexT > cache_
Definition: sub_handle.h:189