class partitioner

Declaration

class partitioner { /* full declaration omitted */ };

Description

////////////////////////////////////////////////////////////////////

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:76

Method Overview

  • public void add_resource(const pika::resource::pu & p, const std::string & pool_name, std::size_t num_threads = 1)
  • public void add_resource(const pika::resource::pu & p, const std::string & pool_name, bool exclusive, std::size_t num_threads = 1)
  • public void add_resource(const std::vector<pika::resource::pu> & pv, const std::string & pool_name, bool exclusive = true)
  • public void add_resource(const pika::resource::core & c, const std::string & pool_name, bool exclusive = true)
  • public void add_resource(const std::vector<pika::resource::core> & cv, const std::string & pool_name, bool exclusive = true)
  • public void add_resource(const pika::resource::numa_domain & nd, const std::string & pool_name, bool exclusive = true)
  • public void add_resource(const std::vector<pika::resource::numa_domain> & ndv, const std::string & pool_name, bool exclusive = true)
  • public std::size_t assign_cores(std::size_t first_core)
  • public void assign_pu(const std::string & pool_name, std::size_t virt_core)
  • public void configure_pools()
  • public void create_thread_pool(const std::string & name, pika::resource::scheduling_policy sched = scheduling_policy::unspecified, pika::threads::policies::scheduler_mode = pika::threads::policies::scheduler_mode::default_mode)
  • public void create_thread_pool(const std::string & name, pika::resource::scheduler_function scheduler_creation)
  • public std::size_t expand_pool(const std::string & pool_name, const util::function<void (std::size_t)> & add_pu)
  • public const pika::detail::affinity_data & get_affinity_data() const
  • public const std::string & get_default_pool_name() const
  • public std::size_t get_num_pools() const
  • public std::size_t get_num_threads() const
  • public std::size_t get_num_threads(std::size_t pool_index) const
  • public std::size_t get_num_threads(const std::string & pool_name) const
  • public pika::resource::scheduler_function get_pool_creator(size_t index) const
  • public std::size_t get_pool_index(const std::string & pool_name) const
  • public const std::string & get_pool_name(std::size_t index) const
  • public threads::detail::mask_cref_type get_pu_mask(std::size_t global_thread_num) const
  • public std::size_t get_pu_num(std::size_t global_thread_num)
  • public pika::threads::policies::scheduler_mode get_scheduler_mode(std::size_t pool_index) const
  • public threads::detail::topology & get_topology() const
  • public void init(resource::partitioner_mode rpmode, pika::util::section cfg, pika::detail::affinity_data affinity_data)
  • public const std::vector<numa_domain> & numa_domains() const
  • public partitioner()
  • public void print_init_pool_data(std::ostream &) const
  • public void set_default_pool_name(const std::string & name)
  • public std::size_t shrink_pool(const std::string & pool_name, const util::function<void (std::size_t)> & remove_pu)
  • public std::size_t threads_needed()
  • public void unassign_pu(const std::string & pool_name, std::size_t virt_core)
  • public pika::resource::scheduling_policy which_scheduler(const std::string & pool_name)
  • public ~partitioner()

Methods

void add_resource(const pika::resource::pu& p,
                  const std::string& pool_name,
                  std::size_t num_threads = 1)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:99

Parameters

const pika::resource::pu& p
const std::string& pool_name
std::size_t num_threads = 1

void add_resource(const pika::resource::pu& p,
                  const std::string& pool_name,
                  bool exclusive,
                  std::size_t num_threads = 1)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:104

Parameters

const pika::resource::pu& p
const std::string& pool_name
bool exclusive
std::size_t num_threads = 1

void add_resource(
    const std::vector<pika::resource::pu>& pv,
    const std::string& pool_name,
    bool exclusive = true)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:107

Parameters

const std::vector<pika::resource::pu>& pv
const std::string& pool_name
bool exclusive = true

void add_resource(const pika::resource::core& c,
                  const std::string& pool_name,
                  bool exclusive = true)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:109

Parameters

const pika::resource::core& c
const std::string& pool_name
bool exclusive = true

void add_resource(
    const std::vector<pika::resource::core>& cv,
    const std::string& pool_name,
    bool exclusive = true)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:111

Parameters

const std::vector<pika::resource::core>& cv
const std::string& pool_name
bool exclusive = true

void add_resource(
    const pika::resource::numa_domain& nd,
    const std::string& pool_name,
    bool exclusive = true)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:113

Parameters

const pika::resource::numa_domain& nd
const std::string& pool_name
bool exclusive = true

void add_resource(
    const std::vector<
        pika::resource::numa_domain>& ndv,
    const std::string& pool_name,
    bool exclusive = true)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:115

Parameters

const std::vector<pika::resource::numa_domain>& ndv
const std::string& pool_name
bool exclusive = true

std::size_t assign_cores(std::size_t first_core)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:167

Parameters

std::size_t first_core

void assign_pu(const std::string& pool_name,
               std::size_t virt_core)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:170

Parameters

const std::string& pool_name
std::size_t virt_core

void configure_pools()

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:125

void create_thread_pool(
    const std::string& name,
    pika::resource::scheduling_policy sched =
        scheduling_policy::unspecified,
    pika::threads::policies::scheduler_mode =
        pika::threads::policies::scheduler_mode::
            default_mode)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:87

Parameters

const std::string& name
pika::resource::scheduling_policy sched = scheduling_policy::unspecified
pika::threads::policies::scheduler_mode = pika::threads::policies::scheduler_mode::default_mode

void create_thread_pool(
    const std::string& name,
    pika::resource::scheduler_function
        scheduler_creation)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:94

Parameters

const std::string& name
pika::resource::scheduler_function scheduler_creation

std::size_t expand_pool(
    const std::string& pool_name,
    const util::function<void(std::size_t)>&
        add_pu)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:175

Parameters

const std::string& pool_name
const util::function<void(std::size_t)>& add_pu

const pika::detail::affinity_data&
get_affinity_data() const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:118

const std::string& get_default_pool_name() const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:183

std::size_t get_num_pools() const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:141

std::size_t get_num_threads() const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:143

std::size_t get_num_threads(
    std::size_t pool_index) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:145

Parameters

std::size_t pool_index

std::size_t get_num_threads(
    const std::string& pool_name) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:144

Parameters

const std::string& pool_name

pika::resource::scheduler_function
get_pool_creator(size_t index) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:160

Parameters

size_t index

std::size_t get_pool_index(
    const std::string& pool_name) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:151

Parameters

const std::string& pool_name

const std::string& get_pool_name(
    std::size_t index) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:150

Parameters

std::size_t index

threads::detail::mask_cref_type get_pu_mask(
    std::size_t global_thread_num) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:154

Parameters

std::size_t global_thread_num

std::size_t get_pu_num(
    std::size_t global_thread_num)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:153

Parameters

std::size_t global_thread_num

pika::threads::policies::scheduler_mode
get_scheduler_mode(std::size_t pool_index) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:147

Parameters

std::size_t pool_index

threads::detail::topology& get_topology() const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:139

void init(
    resource::partitioner_mode rpmode,
    pika::util::section cfg,
    pika::detail::affinity_data affinity_data)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:157

Parameters

resource::partitioner_mode rpmode
pika::util::section cfg
pika::detail::affinity_data affinity_data

const std::vector<numa_domain>& numa_domains()
    const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:162

partitioner()

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:81

void print_init_pool_data(std::ostream&) const

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:84

Parameters

std::ostream&

void set_default_pool_name(
    const std::string& name)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:178

Parameters

const std::string& name

std::size_t shrink_pool(
    const std::string& pool_name,
    const util::function<void(std::size_t)>&
        remove_pu)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:173

Parameters

const std::string& pool_name
const util::function<void(std::size_t)>& remove_pu

std::size_t threads_needed()

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:131

void unassign_pu(const std::string& pool_name,
                 std::size_t virt_core)

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:171

Parameters

const std::string& pool_name
std::size_t virt_core

pika::resource::scheduling_policy which_scheduler(
    const std::string& pool_name)

Description

/////////////////////////////////////////////////////////////////////

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:138

Parameters

const std::string& pool_name

~partitioner()

Declared at: libs/pika/resource_partitioner/include/pika/resource_partitioner/detail/partitioner.hpp:82