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