hpx/parcelport_libfabric/parcelport_libfabric.hpp

See Public API for a list of names and headers that are part of the public HPX API.

Defines

HPX_PARCELPORT_LIBFABRIC_SUSPEND_WAKE
HPX_PARCELPORT_LIBFABRIC_USE_SMALL_VECTOR
HPX_PARCELPORT_LIBFABRIC_IMM_UNSUPPORTED
template<>
struct plugin_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()
namespace hpx
namespace parcelset
namespace policies
namespace libfabric
struct parcelport : public parcelport_impl<parcelport>

Public Types

typedef hpx::spinlock mutex_type
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 &notifier)
bool do_run()
sender *get_connection(parcelset::locality const &dest, fi_addr_t &fi_addr)
void reclaim_connection(sender *s)
std::shared_ptr<sender> create_connection(parcelset::locality const &dest, error_code &ec)
~parcelport()
bool can_bootstrap() const

Should not be used any more as parcelport_impl handles this?

std::string get_locality_name() const

Return the name of this locality.

parcelset::locality agas_locality(util::runtime_configuration const &ini) const
parcelset::locality create_locality() const
void do_stop()
bool can_send_immediate()
template<typename Handler>
bool async_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_
std::atomic<bool> stopped_
memory_pool_type *chunk_pool_
performance_counter<unsigned int> completions_handled_
performance_counter<unsigned int> senders_in_use_

Public Static Functions

static void suspended_task_debug(const std::string &match)

Public Static Attributes

constexpr unsigned int header_size = header_type::header_block_size

Private Types

typedef parcelport_impl<parcelport> base_type
namespace traits
template<>
struct plugin_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()