parcelport_libfabric¶
See Public API for a list of names and headers that are part of the public HPX API.
-
template<>
structconnection_handler_traits
<policies::libfabric::parcelport>¶ Public Types
-
template<>
usingsend_early_parcel
= HPX_PARCELPORT_LIBFABRIC_HAVE_BOOTSTRAPPING¶
-
template<>
-
namespace
hpx
-
namespace
parcelset
¶ -
template<>
structconnection_handler_traits
<policies::libfabric::parcelport> Public Types
-
template<>
usingsend_early_parcel
= HPX_PARCELPORT_LIBFABRIC_HAVE_BOOTSTRAPPING
-
template<>
usingdo_background_work
= std::true_type
-
template<>
usingsend_immediate_parcels
= std::true_type
Public Static Functions
-
static constexpr const char *
type
()
-
static constexpr const char *
pool_name
()
-
static constexpr const char *
pool_name_postfix
()
-
template<>
-
template<>
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
template<int
SIZE
>
structheader
¶ Public Types
-
typedef serialization::serialization_chunk
chunktype
¶
Public Functions
-
char *
chunk_ptr
()¶
-
detail::chunk_header *
chunk_header_ptr
()¶
-
detail::rma_info *
rma_info_ptr
()¶
-
detail::message_info *
message_info_ptr
()¶
-
detail::message_chunk *
message_chunk_ptr
()¶
-
char *
message_ptr
()¶
-
uint32_t
chunk_data_offset
() const¶
-
uint32_t
rma_info_offset
() const¶
-
uint32_t
message_info_offset
() const¶
-
uint32_t
message_offset
() const¶
-
char *
chunk_data
()¶
-
char *
message_data
()¶
-
bool
message_piggy_back
()¶
-
uint64_t
tag
()¶
-
uint32_t
message_size
()¶
-
void
set_message_rdma_info
(uint64_t key, const void *addr)¶
Public Static Attributes
-
constexpr unsigned int
header_block_size
= sizeof(detail::header_block)¶
-
constexpr unsigned int
data_size_
= SIZE - header_block_size¶
-
const unsigned int
chunk_flag
= 0x01¶
-
const unsigned int
message_flag
= 0x02¶
-
const unsigned int
normal_flag
= 0x04¶
-
const unsigned int
zerocopy_flag
= 0x08¶
-
typedef serialization::serialization_chunk
-
template<int
-
namespace
-
namespace
-
namespace
Defines
-
HPX_PARCELPORT_LIBFABRIC_ENDPOINT_MSG
¶
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
Typedefs
-
typedef std::shared_ptr<libfabric_controller>
libfabric_controller_ptr
¶
-
class
libfabric_controller
¶ Public Types
-
typedef hpx::parcelset::policies::libfabric::unique_lock<mutex_type>
unique_lock
¶
-
typedef hpx::parcelset::policies::libfabric::scoped_lock<mutex_type>
scoped_lock
¶
-
typedef hpx::concurrent::unordered_map<uint32_t, promise_tuple_type>::map_read_lock_type
map_read_lock_type
¶
-
typedef hpx::concurrent::unordered_map<uint32_t, promise_tuple_type>::map_write_lock_type
map_write_lock_type
¶
Public Functions
-
libfabric_controller
(std::string const &provider, std::string const &domain, std::string const &endpoint, int = 7910)¶
-
void
boot_PMI
()¶
-
~libfabric_controller
()¶
-
void
open_fabric
(std::string const &provider, std::string const &domain, std::string const &endpoint_type)¶
-
void
startup
(parcelport *pp)¶
-
void
_set_check_domain_op_value
(int op, const char *value)¶
-
void
_set_disable_registration
()¶
-
void
create_event_queue
()¶
-
void
new_endpoint_active
(struct fi_info *info, struct fid_ep **new_endpoint)¶
-
void
bind_endpoint_to_queues
(struct fid_ep *endpoint)¶
-
void
bind_passive_endpoint_to_queues
(struct fid_pep *endpoint)¶
-
void
initialize_localities
()¶
-
const bool &
immedate_data_supported
() const¶
-
bool
isTerminated
()¶
-
void
setConnectionFunction
(ConnectionFunction f)¶
-
void
setDisconnectionFunction
(DisconnectionFunction f)¶
-
int
poll_endpoints
(bool stopped = false)¶
-
int
poll_for_work_completions
()¶
-
int
poll_send_queue
()¶
-
int
poll_recv_queue
()¶
-
int
poll_event_queue
(bool = false)¶
-
struct fid_domain *
get_domain
()¶
-
rma_memory_pool<libfabric_region_provider> &
get_memory_pool
()¶
-
void
create_completion_queues
(struct fi_info *info, int N)¶
-
void
disconnect_all
()¶
-
bool
active
()¶
Public Members
-
hpx::concurrent::unordered_map<uint32_t, promise_tuple_type>
endpoint_tmp_
¶
-
struct fi_info *
fabric_info_
¶
-
struct fid_fabric *
fabric_
¶
-
struct fid_domain *
fabric_domain_
¶
-
struct fid_pep *
ep_passive_
¶
-
struct fid_ep *
ep_active_
¶
-
struct fid_eq *
event_queue_
¶
-
struct fid_cq *
txcq_
¶
-
struct fid_cq *
rxcq_
¶
-
struct fid_av *
av_
¶
-
bool
immediate_
¶
Private Members
-
sockaddr_in
local_addr_
¶
-
ConnectionFunction
connection_function_
¶
-
DisconnectionFunction
disconnection_function_
¶
-
std::unique_ptr<rma_memory_pool<libfabric_region_provider>>
memory_pool_
¶
-
mutex_type
initialization_mutex_
¶
-
mutex_type
endpoint_map_mutex_
¶
-
mutex_type
polling_mutex_
¶
-
uint32_t
event_pause_
¶
-
typedef hpx::parcelset::policies::libfabric::unique_lock<mutex_type>
-
typedef std::shared_ptr<libfabric_controller>
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
locality
¶ Public Types
-
typedef std::array<uint32_t, array_length>
locality_data
¶
Public Functions
-
locality
(const locality_data &in_data)¶
-
locality
()¶
-
const uint32_t &
ip_address
() const¶
-
fi_addr_t
fi_address
() const¶
-
void
set_fi_address
(fi_addr_t fi_addr)¶
-
uint16_t
port
() const¶
-
operator bool
() const¶
-
void
save
(serialization::output_archive &ar) const¶
-
void
load
(serialization::input_archive &ar)¶
-
const void *
fabric_data
() const¶
-
char *
fabric_data_writable
()¶
-
bool
valid
()¶
Public Static Functions
-
static const char *
type
()¶
-
static const uint32_t &
ip_address
(const locality_data &data)¶
-
typedef std::array<uint32_t, array_length>
-
struct
-
namespace
-
namespace
-
namespace
Defines
-
HPX_PARCELPORT_LIBFABRIC_SUSPEND_WAKE
¶
-
HPX_PARCELPORT_LIBFABRIC_USE_SMALL_VECTOR
¶
-
HPX_PARCELPORT_LIBFABRIC_IMM_UNSUPPORTED
¶
-
template<>
structplugin_config_data
<hpx::parcelset::policies::libfabric::parcelport>¶ Public Static Functions
-
static char const *
priority
()¶
-
static void
init
(int*, char***, util::command_line_handling&)¶
-
static void
destroy
()¶
-
static char const *
call
()
-
static char const *
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
parcelport
: public parcelport_impl<parcelport>¶ Public Types
-
typedef hpx::parcelset::policies::libfabric::scoped_lock<mutex_type>
scoped_lock
¶
-
typedef hpx::parcelset::policies::libfabric::unique_lock<mutex_type>
unique_lock
¶
-
typedef rma_memory_region<libfabric_region_provider>
region_type
¶
-
typedef memory_region_allocator<libfabric_region_provider>
allocator_type
¶
-
typedef header<HPX_PARCELPORT_LIBFABRIC_MESSAGE_HEADER_SIZE>
header_type
¶
-
typedef rma_memory_pool<libfabric_region_provider>
memory_pool_type
¶
-
typedef pinned_memory_vector<char, header_size, region_type, memory_pool_type>
snd_data_type
¶
-
typedef parcel_buffer<snd_data_type>
snd_buffer_type
¶
Public Functions
-
parcelport
(util::runtime_configuration const &ini, threads::policies::callback_notifier const ¬ifier)¶
-
bool
do_run
()¶
-
~parcelport
()¶
-
bool
can_bootstrap
() const¶ Should not be used any more as parcelport_impl handles this?
-
parcelset::locality
agas_locality
(util::runtime_configuration const &ini) const¶
-
void
do_stop
()¶
-
bool
can_send_immediate
()¶
-
template<typename
Handler
>
boolasync_write
(Handler &&handler, sender *sender, fi_addr_t addr, snd_buffer_type &buffer)¶
-
bool
background_work
(std::size_t num_thread, parcelport_background_mode mode)¶
-
void
io_service_work
()¶
-
bool
background_work_OS_thread
()¶
Public Members
-
libfabric_controller_ptr
libfabric_controller_
¶
-
uint32_t
ip_addr_
¶
-
bool
bootstrap_enabled_
¶
-
bool
parcelport_enabled_
¶
-
mutex_type
stop_mutex
¶
-
boost::lockfree::stack<sender*, boost::lockfree::capacity<HPX_PARCELPORT_LIBFABRIC_THROTTLE_SENDS>, boost::lockfree::fixed_sized<true>>
senders_
¶
-
memory_pool_type *
chunk_pool_
¶
-
performance_counter<unsigned int>
completions_handled_
¶
-
performance_counter<unsigned int>
senders_in_use_
¶
Public Static Attributes
-
constexpr unsigned int
header_size
= header_type::header_block_size¶
Private Types
-
typedef parcelport_impl<parcelport>
base_type
¶
-
typedef hpx::parcelset::policies::libfabric::scoped_lock<mutex_type>
-
struct
-
namespace
-
namespace
-
namespace
traits
-
template<>
structplugin_config_data
<hpx::parcelset::policies::libfabric::parcelport> Public Static Functions
-
static char const *
priority
()
-
static void
init
(int*, char***, util::command_line_handling&)
-
static void
destroy
()
-
static char const *
call
()
-
static char const *
-
template<>
-
namespace
Defines
-
sched_getcpu
()¶
-
nhex
(n)¶
-
hexpointer
(p)¶
-
hexuint64
(p)¶
-
hexuint32
(p)¶
-
hexlength
(p)¶
-
hexnumber
(p)¶
-
hexbyte
(p)¶
-
decimal
(n)¶
-
decnumber
(p)¶
-
dec4
(p)¶
-
ipaddress
(p)¶
-
sockaddress
(p)¶
-
THREAD_ID
¶
-
CRC32
(buf, len)¶
-
CRC32_MEM
(buf, len, txt)¶
-
LOG_TRACE_MSG
(x)¶
-
LOG_DEBUG_MSG
(x)¶
-
LOG_INFO_MSG
(x)¶
-
LOG_WARN_MSG
(x)¶
-
LOG_ERROR_MSG
(x)¶
-
LOG_FATAL_MSG
(x)¶
-
LOG_EXCLUSIVE
(x)¶
-
FUNC_START_DEBUG_MSG
¶
-
FUNC_END_DEBUG_MSG
¶
-
LOG_FORMAT_MSG
(x)¶
-
LOG_DEVEL_MSG
(x)¶
-
LOG_TIMED_INIT
(name)¶
-
LOG_TIMED_MSG
(name, level, delay, x)¶
-
LOG_TIMED_BLOCK
(name, level, delay, x)¶
-
X_DEFINE_ENUM_WITH_STRING_CONVERSIONS_TOSTRING_CASE
(r, data, elem)¶
-
DEFINE_ENUM_WITH_STRING_CONVERSIONS
(name, enumerators)¶
Defines
-
PERFORMANCE_COUNTER_ENABLED
¶
-
namespace
hpx
-
namespace
parcelset
-
template<typename
T
>
structperformance_counter
<T, false>¶ Public Functions
-
constexpr
performance_counter
()¶
-
constexpr
performance_counter
(const T&)¶
-
constexpr
operator T
() const¶
-
constexpr T
operator=
(const T&)¶
-
constexpr T
operator++
()¶
-
constexpr T
operator++
(int)¶
-
constexpr T
operator+=
(const T&)¶
-
constexpr T
operator--
()¶
-
constexpr T
operator--
(int)¶
-
constexpr T
operator-=
(const T&)¶
-
constexpr
-
template<typename
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
template<typename
T
, intOffset
, typenameRegion
, typenameAllocator
>
classpinned_memory_vector
¶ Public Types
-
typedef T
value_type
¶
-
typedef value_type &
reference
¶
-
typedef T *
iterator
¶
-
typedef T const *
const_iterator
¶
-
typedef Allocator
allocator_type
¶
-
typedef Region
region_type
¶
-
typedef pinned_memory_vector<T, Offset, region_type, allocator_type>
vector_type
¶
Public Functions
-
pinned_memory_vector
(allocator_type *alloc)¶
-
pinned_memory_vector
(T *p, std::size_t s, deleter_callback cb, allocator_type *alloc, region_type *r)¶
-
pinned_memory_vector
(vector_type &&other)¶
-
~pinned_memory_vector
()¶
-
vector_type &
operator=
(vector_type &&other)¶
-
bool
empty
() const¶
-
T *
data
()¶
-
const_iterator
begin
() const¶
-
const_iterator
end
() const¶
-
void
push_back
(const T &_Val)¶
Public Members
-
const typedef value_type& hpx::parcelset::policies::libfabric::pinned_memory_vector::const_reference
-
T *
m_array_
¶
-
deleter_callback
m_cb_
¶
-
allocator_type *
m_alloc_
¶
-
region_type *
m_region_
¶
Private Functions
-
pinned_memory_vector
(vector_type const &other)¶
-
typedef T
-
template<typename
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
lcos
-
namespace
local
-
class
readers_writer_mutex
¶ Public Functions
-
readers_writer_mutex
()¶
-
void
lock
()¶
-
void
unlock
()¶
-
bool
try_lock
()¶
-
bool
owns_lock
()¶
-
union
readwrite_ticket
¶ Public Members
-
uint64_t
u
¶
-
uint32_t
wr
¶
-
struct hpx::lcos::local::readers_writer_mutex::readwrite_ticket::[anonymous]
i
¶
-
uint16_t
writers
¶
-
uint16_t
readers
¶
-
uint16_t
next
¶
-
uint16_t
notused
¶
-
struct hpx::lcos::local::readers_writer_mutex::readwrite_ticket::[anonymous]
s
¶
-
uint64_t
-
-
class
-
namespace
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
receiver
¶ Public Types
-
typedef libfabric_region_provider
region_provider
¶
-
typedef rma_memory_region<region_provider>
region_type
¶
-
typedef hpx::detail::small_vector<region_type*, 8>
zero_copy_vector
¶
Public Functions
-
receiver
(parcelport *pp, fid_ep *endpoint, rma_memory_pool<region_provider> &memory_pool)¶
-
~receiver
()¶
-
void
pre_post_receive
()¶
-
void
cleanup
()¶
Private Members
-
parcelport *
pp_
¶
-
fid_ep *
endpoint_
¶
-
region_type *
header_region_
¶
-
rma_memory_pool<region_provider> *
memory_pool_
¶
-
performance_counter<unsigned int>
messages_handled_
¶
-
performance_counter<unsigned int>
acks_received_
¶
-
performance_counter<unsigned int>
msg_plain_
¶
-
performance_counter<unsigned int>
msg_rma_
¶
-
performance_counter<unsigned int>
sent_ack_
¶
-
performance_counter<unsigned int>
rma_reads_
¶
-
performance_counter<unsigned int>
recv_deletes_
¶
-
boost::lockfree::stack<rma_receiver*, boost::lockfree::capacity<HPX_PARCELPORT_LIBFABRIC_MAX_PREPOSTS>, boost::lockfree::fixed_sized<true>>
rma_receivers_
¶
-
mutex_type
active_receivers_mtx_
¶
-
hpx::util::atomic_count
active_receivers_
¶
Friends
-
friend
hpx::parcelset::policies::libfabric::libfabric_controller
-
typedef libfabric_region_provider
-
struct
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
rma_base
¶ Subclassed by hpx::parcelset::policies::libfabric::rma_receiver, hpx::parcelset::policies::libfabric::sender
-
struct
-
namespace
-
namespace
-
namespace
Defines
-
RDMA_POOL_1K_CHUNK_SIZE
¶
-
RDMA_POOL_SMALL_CHUNK_SIZE
¶
-
RDMA_POOL_MEDIUM_CHUNK_SIZE
¶
-
RDMA_POOL_LARGE_CHUNK_SIZE
¶
-
RDMA_POOL_MAX_1K_CHUNKS
¶
-
RDMA_POOL_MAX_SMALL_CHUNKS
¶
-
RDMA_POOL_MAX_MEDIUM_CHUNKS
¶
-
RDMA_POOL_MAX_LARGE_CHUNKS
¶
-
namespace
hpx
-
namespace
parcelset
-
template<typename
RegionProvider
>
structmemory_region_allocator
¶ Public Types
-
typedef RegionProvider::provider_domain
domain_type
¶
-
typedef rma_memory_region<RegionProvider>
region_type
¶
-
typedef std::shared_ptr<region_type>
region_ptr
¶
Public Functions
-
memory_region_allocator
()¶
Public Static Functions
-
static region_ptr
malloc
(domain_type *pd, const std::size_t bytes)¶
-
static void
free
(region_ptr region)¶
-
typedef RegionProvider::provider_domain
-
template<typename
RegionProvider
, typenameAllocator
, typenamePoolType
, std::size_tChunkSize
, std::size_tMaxChunks
>
structpool_container
¶ Public Types
-
typedef RegionProvider::provider_domain
domain_type
¶
-
typedef rma_memory_region<RegionProvider>
region_type
¶
-
typedef std::shared_ptr<region_type>
region_ptr
¶
Public Functions
-
pool_container
(domain_type *pd)¶
-
bool
allocate_pool
()¶
-
void
DeallocatePool
()¶
-
void
push
(region_type *region)¶
-
region_type *
pop
()¶
-
void
decrement_used_count
(uint32_t N)¶
Public Members
-
performance_counter<unsigned int>
accesses_
¶
-
performance_counter<unsigned int>
in_use_
¶
-
domain_type *
pd_
¶
-
std::unordered_map<const char*, region_ptr>
block_list_
¶
-
std::array<region_type, MaxChunks>
region_list_
¶
-
bl::stack<region_type*, bl::capacity<MaxChunks>>
free_list_
¶
-
typedef RegionProvider::provider_domain
-
template<typename
RegionProvider
>
structrma_memory_pool
¶ Public Types
-
typedef RegionProvider::provider_domain
domain_type
¶
-
typedef rma_memory_region<RegionProvider>
region_type
¶
-
typedef memory_region_allocator<RegionProvider>
allocator_type
¶
-
typedef std::shared_ptr<region_type>
region_ptr
¶
Public Functions
-
HPX_NON_COPYABLE
(rma_memory_pool)¶
-
rma_memory_pool
(domain_type *pd)¶
-
~rma_memory_pool
()¶
-
void
deallocate_pools
()¶
-
bool
can_allocate_unsafe
(size_t length) const¶
-
region_type *
allocate_region
(size_t length)¶
-
void
deallocate
(region_type *region)¶
-
region_type *
allocate_temporary_region
(std::size_t length)¶
Public Members
-
domain_type *
protection_domain_
¶
-
pool_container<RegionProvider, allocator_type, pool_tiny, RDMA_POOL_1K_CHUNK_SIZE, RDMA_POOL_MAX_1K_CHUNKS>
tiny_
¶
-
pool_container<RegionProvider, allocator_type, pool_small, RDMA_POOL_SMALL_CHUNK_SIZE, RDMA_POOL_MAX_SMALL_CHUNKS>
small_
¶
-
pool_container<RegionProvider, allocator_type, pool_medium, RDMA_POOL_MEDIUM_CHUNK_SIZE, RDMA_POOL_MAX_MEDIUM_CHUNKS>
medium_
¶
-
pool_container<RegionProvider, allocator_type, pool_large, RDMA_POOL_LARGE_CHUNK_SIZE, RDMA_POOL_MAX_LARGE_CHUNKS>
large_
¶
-
hpx::util::atomic_count
temp_regions
¶
-
hpx::util::atomic_count
user_regions
¶
-
typedef RegionProvider::provider_domain
-
template<typename
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
-
template<typename
RegionProvider
>
structrma_memory_region
¶ Public Types
-
typedef RegionProvider::provider_domain
provider_domain
¶
-
typedef RegionProvider::provider_region
provider_region
¶
Public Functions
-
rma_memory_region
()¶
-
rma_memory_region
(provider_region *region, char *address, char *base_address, uint64_t size, uint32_t flags)¶
-
rma_memory_region
(provider_domain *pd, const void *buffer, const uint64_t length)¶
-
int
allocate
(provider_domain *pd, uint64_t length)¶
-
~rma_memory_region
()¶
-
int
release
(void)¶
-
char *
get_address
(void) const¶
-
char *
get_base_address
(void) const¶
-
uint64_t
get_size
(void) const¶
-
void *
get_desc
(void) const¶
-
uint64_t
get_remote_key
(void) const¶
-
void
set_message_length
(uint32_t length)¶
-
uint32_t
get_message_length
(void) const¶
-
struct fid_mr *
get_region
()¶
-
void
set_user_region
()¶
-
bool
get_user_region
() const¶
-
void
set_temp_region
()¶
-
bool
get_temp_region
() const¶
-
void
set_partial_region
()¶
-
bool
get_partial_region
() const¶
-
typedef RegionProvider::provider_domain
-
template<typename
-
namespace
-
namespace
hpx
-
namespace
traits
-
template<typename
RegionProvider
>
structrma_memory_region_traits
¶ Public Types
-
typedef RegionProvider::provider_domain
provider_domain
¶
-
typedef RegionProvider::provider_region
provider_region
¶
Public Static Functions
-
static int
register_memory
(provider_domain *pd, const void *buf, size_t len, uint64_t access, uint64_t offset, uint64_t requested_key, uint64_t flags, provider_region **mr, void *context)¶
-
static int
unregister_memory
(provider_region *mr)¶
-
static int
flags
()¶
-
typedef RegionProvider::provider_domain
-
template<typename
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
rma_receiver
: public hpx::parcelset::policies::libfabric::rma_base¶ Public Types
-
typedef libfabric_region_provider
region_provider
¶
-
typedef rma_memory_region<region_provider>
region_type
¶
-
typedef rma_memory_pool<region_provider>
memory_pool_type
¶
-
typedef hpx::detail::small_vector<region_type*, 8>
zero_copy_vector
¶
-
typedef header<HPX_PARCELPORT_LIBFABRIC_MESSAGE_HEADER_SIZE>
header_type
¶
-
typedef serialization::serialization_chunk
chunk_struct
¶
-
typedef hpx::function<void(rma_receiver*)>
completion_handler
¶
Public Functions
-
rma_receiver
(parcelport *pp, fid_ep *endpoint, memory_pool_type *memory_pool, completion_handler &&handler)¶
-
~rma_receiver
()¶
-
void
read_message
(region_type *region, fi_addr_t const &src_addr)¶
-
void
handle_message_no_rma
()¶
-
void
handle_message_with_zerocopy_rma
()¶
-
void
handle_message_no_chunk_data
()¶
-
int
handle_chunks_read_message
()¶
-
void
handle_rma_read_completion
()¶
-
void
send_rdma_complete_ack
()¶
-
void
cleanup_receive
()¶
-
void
handle_error
(struct fi_cq_err_entry err)¶
-
void
read_chunk_list
()¶
-
void
read_one_chunk
(fi_addr_t src_addr, region_type *get_region, const void *remoteAddr, uint64_t rkey)¶
Public Static Attributes
-
constexpr unsigned int
header_size
= header_type::header_block_size¶
Private Members
-
parcelport *
pp_
¶
-
fid_ep *
endpoint_
¶
-
region_type *
header_region_
¶
-
region_type *
chunk_region_
¶
-
region_type *
message_region_
¶
-
header_type *
header_
¶
-
std::vector<chunk_struct>
chunks_
¶
-
zero_copy_vector
rma_regions_
¶
-
rma_memory_pool<region_provider> *
memory_pool_
¶
-
fi_addr_t
src_addr_
¶
-
completion_handler
handler_
¶
-
hpx::util::atomic_count
rma_count_
¶
-
bool
chunk_fetch_
¶
-
double
start_time_
¶
-
performance_counter<unsigned int>
msg_plain_
¶
-
performance_counter<unsigned int>
msg_rma_
¶
-
performance_counter<unsigned int>
sent_ack_
¶
-
performance_counter<unsigned int>
rma_reads_
¶
-
performance_counter<unsigned int>
recv_deletes_
¶
Friends
-
friend
hpx::parcelset::policies::libfabric::receiver
-
typedef libfabric_region_provider
-
struct
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
parcelset
-
namespace
policies
-
namespace
libfabric
-
struct
sender
: public hpx::parcelset::policies::libfabric::rma_base¶ Public Types
-
typedef libfabric_region_provider
region_provider
¶
-
typedef rma_memory_region<region_provider>
region_type
¶
-
typedef rma_memory_pool<region_provider>
memory_pool_type
¶
-
typedef header<HPX_PARCELPORT_LIBFABRIC_MESSAGE_HEADER_SIZE>
header_type
¶
-
typedef pinned_memory_vector<char, header_size, region_type, memory_pool_type>
snd_data_type
¶
-
typedef parcel_buffer<snd_data_type, serialization::serialization_chunk>
snd_buffer_type
¶
-
typedef hpx::detail::small_vector<region_type*, 8>
zero_copy_vector
¶
Public Functions
-
sender
(parcelport *pp, fid_ep *endpoint, fid_domain *domain, memory_pool_type *memory_pool)¶
-
~sender
()¶
-
snd_buffer_type
get_new_buffer
()¶
-
template<typename
Handler
, typenameParcelPostprocess
>
voidasync_write
(Handler&&, ParcelPostprocess&&)¶
-
void
async_write_impl
()¶
-
void
handle_send_completion
()¶
-
void
handle_message_completion_ack
()¶
-
void
cleanup
()¶
-
void
handle_error
(struct fi_cq_err_entry err)¶
Public Members
-
parcelport *
parcelport_
¶
-
fid_ep *
endpoint_
¶
-
fid_domain *
domain_
¶
-
memory_pool_type *
memory_pool_
¶
-
fi_addr_t
dst_addr_
¶
-
snd_buffer_type
buffer_
¶
-
region_type *
header_region_
¶
-
region_type *
chunk_region_
¶
-
region_type *
message_region_
¶
-
header_type *
header_
¶
-
zero_copy_vector
rma_regions_
¶
-
hpx::util::atomic_count
completion_count_
¶
-
performance_counter<unsigned int>
sends_posted_
¶
-
performance_counter<unsigned int>
sends_deleted_
¶
-
performance_counter<unsigned int>
acks_received_
¶
-
hpx::move_only_function<void(error_code const&)>
handler_
¶
-
struct iovec
region_list_
[2]¶
-
void *
desc_
[2]¶
Public Static Attributes
-
constexpr unsigned int
header_size
= header_type::header_block_size¶
-
typedef libfabric_region_provider
-
struct
-
namespace
-
namespace
-
namespace
-
namespace
hpx
-
namespace
concurrent
¶ -
template<class
Key
, classValue
, classHash
= std::hash<Key>, classKeyEqual
= std::equal_to<Key>, classAllocator
= std::allocator<std::pair<const Key, Value>>>
classunordered_map
¶ Public Types
-
typedef hpx::lcos::local::readers_writer_mutex
rw_mutex_type
¶
-
typedef std::unique_lock<rw_mutex_type>
write_lock
¶
-
typedef std::shared_lock<rw_mutex_type>
read_lock
¶
-
typedef write_lock
map_write_lock_type
¶
Public Functions
-
unordered_map
(size_type n = 64, const hasher &hf = hasher(), const key_equal &eql = key_equal(), const allocator_type &a = allocator_type())¶
-
template<typename
InputIterator
>unordered_map
(InputIterator first, InputIterator last, size_type n = 64, const hasher &hf = hasher(), const key_equal &eql = key_equal(), const allocator_type &a = allocator_type())¶
-
unordered_map
(const unordered_map &other)¶
-
unordered_map
(const allocator_type &a)¶
-
unordered_map
(const unordered_map &other, const allocator_type &a)¶
-
unordered_map
(unordered_map &&other)¶
-
unordered_map
(unordered_map &&other, const allocator_type &a)¶
-
unordered_map
(std::initializer_list<value_type> il, size_type n = 64, const hasher &hf = hasher(), const key_equal &eql = key_equal(), const allocator_type &a = allocator_type())¶
-
~unordered_map
()¶
-
unordered_map &
operator=
(const unordered_map &other)¶
-
unordered_map &
operator=
(unordered_map &&other)¶
-
unordered_map &
operator=
(std::initializer_list<value_type> il)¶
-
void
swap
(unordered_map &other)¶
-
std::pair<iterator, bool>
insert
(const value_type &x)¶
-
iterator
insert
(const_iterator hint, const value_type &x)¶
-
template<class
InputIterator
>
voidinsert
(InputIterator first, InputIterator last)¶
-
std::pair<iterator, bool>
insert
(value_type &&x)¶
-
iterator
insert
(const_iterator hint, value_type &&x)¶
-
void
insert
(std::initializer_list<value_type> il)¶
-
template<typename ...
Args
>
iteratoremplace_hint
(const_iterator hint, Args&&... args)¶
-
iterator
erase
(const_iterator position)¶
-
iterator
erase
(const_iterator first, const_iterator last)¶
-
void
clear
()¶
-
bool
empty
() const¶
-
const_iterator
begin
() const¶
-
const_iterator
end
() const¶
-
const_iterator
cbegin
() const¶
-
const_iterator
cend
() const¶
-
rw_mutex_type &
read_write_mutex
()¶
-
const_iterator
find
(const key_type &k) const¶
-
std::pair<const_iterator, bool>
is_in_map
(const key_type &k) const¶
-
std::pair<const_iterator, const_iterator>
equal_range
(const key_type &k) const¶
-
const mapped_type &
operator[]
(const key_type &k) const¶
-
mapped_type &
at
(const key_type &k)¶
-
const mapped_type &
at
(const key_type &k) const¶
-
typedef hpx::lcos::local::readers_writer_mutex
-
template<class
-
namespace