resource_partitioner¶
The contents of this module can be included with the header
hpx/modules/resource_partitioner.hpp
. These headers may be used by user-code but are not
guaranteed stable (neither header location nor contents). You are using these at
your own risk. If you wish to use non-public functionality from a module we
strongly suggest only including the module header hpx/modules/resource_partitioner.hpp
, not
the particular header in which the functionality you would like to use is
defined. See Public API for a list of names that are part of the public
HPX API.
-
namespace
hpx
-
namespace
resource
¶ -
class
core
¶ Public Functions
-
core
(std::size_t id = invalid_core_id, numa_domain *domain = nullptr)¶
Friends
-
friend
hpx::resource::pu
-
friend
hpx::resource::numa_domain
-
-
class
numa_domain
¶ Public Functions
-
numa_domain
(std::size_t id = invalid_numa_domain_id)¶
Friends
-
friend
hpx::resource::pu
-
friend
hpx::resource::core
-
-
class
partitioner
¶ Public Functions
-
void
create_thread_pool
(std::string const &name, scheduling_policy sched = scheduling_policy::unspecified, hpx::threads::policies::scheduler_mode = hpx::threads::policies::scheduler_mode::default_mode)¶
-
void
create_thread_pool
(std::string const &name, scheduler_function scheduler_creation)¶
-
void
add_resource
(hpx::resource::pu const &p, std::string const &pool_name, std::size_t num_threads = 1)¶
-
void
add_resource
(hpx::resource::pu const &p, std::string const &pool_name, bool exclusive, std::size_t num_threads = 1)¶
-
void
add_resource
(std::vector<hpx::resource::pu> const &pv, std::string const &pool_name, bool exclusive = true)¶
-
void
add_resource
(hpx::resource::core const &c, std::string const &pool_name, bool exclusive = true)¶
-
void
add_resource
(std::vector<hpx::resource::core> &cv, std::string const &pool_name, bool exclusive = true)¶
-
void
add_resource
(hpx::resource::numa_domain const &nd, std::string const &pool_name, bool exclusive = true)¶
-
void
add_resource
(std::vector<hpx::resource::numa_domain> const &ndv, std::string const &pool_name, bool exclusive = true)¶
-
std::vector<numa_domain> const &
numa_domains
() const¶
-
void
configure_pools
()¶
Private Functions
Private Members
-
detail::partitioner &
partitioner_
¶
-
void
-
class
-
namespace
-
namespace
hpx
-
namespace
resource
Typedefs
-
using
scheduler_function
= util::function_nonser<std::unique_ptr<hpx::threads::thread_pool_base>(hpx::threads::thread_pool_init_parameters, hpx::threads::policies::thread_queue_init_parameters)>¶
Enums
-
enum
partitioner_mode
¶ This enumeration describes the modes available when creating a resource partitioner.
Values:
-
mode_default
= 0¶ Default mode.
-
mode_allow_oversubscription
= 1¶ Allow processing units to be oversubscribed, i.e. multiple worker threads to share a single processing unit.
-
mode_allow_dynamic_pools
= 2¶ Allow worker threads to be added and removed from thread pools.
-
-
enum
scheduling_policy
¶ This enumeration lists the available scheduling policies (or schedulers) when creating thread pools.
Values:
-
user_defined
= -2¶
-
unspecified
= -1¶
-
local
= 0¶
-
local_priority_fifo
= 1¶
-
local_priority_lifo
= 2¶
-
static_
= 3¶
-
static_priority
= 4¶
-
abp_priority_fifo
= 5¶
-
abp_priority_lifo
= 6¶
-
-
using
-
namespace