struct parallel_policy_executor

Declaration

template <typename Policy>
struct parallel_policy_executor { /* full declaration omitted */ };

Description

//////////////////////////////////////////////////////////////////////// A \acreates groups of parallel execution agents which execute in threads implicitly created by the executor. This executor prefers continuing with the creating thread first before executing newly created threads. This executor conforms to the concepts of a TwoWayExecutor, and a BulkTwoWayExecutor

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:85

Method Overview

  • public template <typename F, typename... Ts>pika::future<typename pika::util::detail::invoke_deferred_result<F, Ts...>::type> async_execute(F && f, Ts &&... ts) const
  • public template <typename F, typename S, typename... Ts>std::vector<pika::future<typename parallel::execution::detail::bulk_function_result<F, S, Ts...>::type>> bulk_async_execute(F && f, const S & shape, Ts &&... ts) const
  • public template <typename F, typename S, typename Future, typename... Ts>pika::future<typename parallel::execution::detail::bulk_then_execute_result<F, S, Future, Ts...>::type> bulk_then_execute(F && f, const S & shape, Future && predecessor, Ts &&... ts)
  • public constexpr const parallel_policy_executor<Policy> & context() const noexcept
  • public constexpr parallel_policy_executor<Policy>(threads::thread_priority priority, threads::thread_stacksize stacksize = threads::thread_stacksize::default_, threads::thread_schedule_hint schedulehint = {}, Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call(), std::size_t hierarchical_threshold = hierarchical_threshold_default_)
  • public constexpr parallel_policy_executor<Policy>(threads::thread_stacksize stacksize, threads::thread_schedule_hint schedulehint = {}, Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call())
  • public constexpr parallel_policy_executor<Policy>(threads::thread_schedule_hint schedulehint, Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call())
  • public constexpr parallel_policy_executor<Policy>(Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call())
  • public constexpr parallel_policy_executor<Policy>(threads::thread_pool_base * pool, threads::thread_priority priority = threads::thread_priority::default_, threads::thread_stacksize stacksize = threads::thread_stacksize::default_, threads::thread_schedule_hint schedulehint = {}, Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call(), std::size_t hierarchical_threshold = hierarchical_threshold_default_)
  • public template <typename F, typename... Ts>void post(F && f, Ts &&... ts) const
  • public template <typename F, typename... Ts>typename pika::util::detail::invoke_deferred_result<F, Ts...>::type sync_execute(F && f, Ts &&... ts) const
  • public template <typename F, typename Future, typename... Ts>inline pika::future<typename pika::util::detail::invoke_deferred_result<F, Future, Ts...>::type> then_execute(F && f, Future && predecessor, Ts &&... ts) const

Methods

template <typename F, typename... Ts>
pika::future<
    typename pika::util::detail::
        invoke_deferred_result<F, Ts...>::type>
async_execute(F&& f, Ts&&... ts) const

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:256

Parameters

F&& f
Ts&&... ts

template <typename F, typename S, typename... Ts>
std::vector<pika::future<
    typename parallel::execution::detail::
        bulk_function_result<F, S, Ts...>::type>>
bulk_async_execute(F&& f,
                   const S& shape,
                   Ts&&... ts) const

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:307

Parameters

F&& f
const S& shape
Ts&&... ts

template <typename F,
          typename S,
          typename Future,
          typename... Ts>
pika::future<
    typename parallel::execution::detail::
        bulk_then_execute_result<F,
                                 S,
                                 Future,
                                 Ts...>::type>
bulk_then_execute(F&& f,
                  const S& shape,
                  Future&& predecessor,
                  Ts&&... ts)

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:322

Parameters

F&& f
const S& shape
Future&& predecessor
Ts&&... ts

constexpr const parallel_policy_executor<Policy>&
context() const noexcept

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:232

constexpr parallel_policy_executor<Policy>(
    threads::thread_priority priority,
    threads::thread_stacksize stacksize =
        threads::thread_stacksize::default_,
    threads::thread_schedule_hint schedulehint =
        {},
    Policy l = parallel::execution::detail::
        get_default_policy<type - parameter - 0 -
                           0>::call(),
    std::size_t hierarchical_threshold =
        hierarchical_threshold_default_)

Description

Create a new parallel executor

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:96

Parameters

threads::thread_priority priority
threads::thread_stacksize stacksize = threads::thread_stacksize::default_
threads::thread_schedule_hint schedulehint = {}
Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call()
std::size_t hierarchical_threshold = hierarchical_threshold_default_

constexpr parallel_policy_executor<Policy>(
    threads::thread_stacksize stacksize,
    threads::thread_schedule_hint schedulehint =
        {},
    Policy l = parallel::execution::detail::
        get_default_policy<type - parameter - 0 -
                           0>::call())

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:111

Parameters

threads::thread_stacksize stacksize
threads::thread_schedule_hint schedulehint = {}
Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call()

constexpr parallel_policy_executor<Policy>(
    threads::thread_schedule_hint schedulehint,
    Policy l = parallel::execution::detail::
        get_default_policy<type - parameter - 0 -
                           0>::call())

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:122

Parameters

threads::thread_schedule_hint schedulehint
Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call()

constexpr parallel_policy_executor<Policy>(
    Policy l = parallel::execution::detail::
        get_default_policy<type - parameter - 0 -
                           0>::call())

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:132

Parameters

Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call()

constexpr parallel_policy_executor<Policy>(
    threads::thread_pool_base* pool,
    threads::thread_priority priority =
        threads::thread_priority::default_,
    threads::thread_stacksize stacksize =
        threads::thread_stacksize::default_,
    threads::thread_schedule_hint schedulehint =
        {},
    Policy l = parallel::execution::detail::
        get_default_policy<type - parameter - 0 -
                           0>::call(),
    std::size_t hierarchical_threshold =
        hierarchical_threshold_default_)

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:140

Parameters

threads::thread_pool_base* pool
threads::thread_priority priority = threads::thread_priority::default_
threads::thread_stacksize stacksize = threads::thread_stacksize::default_
threads::thread_schedule_hint schedulehint = {}
Policy l = parallel::execution::detail::get_default_policy<type-parameter-0-0>::call()
std::size_t hierarchical_threshold = hierarchical_threshold_default_

template <typename F, typename... Ts>
void post(F&& f, Ts&&... ts) const

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:293

Parameters

F&& f
Ts&&... ts

template <typename F, typename... Ts>
typename pika::util::detail::
    invoke_deferred_result<F, Ts...>::type
    sync_execute(F&& f, Ts&&... ts) const

Description

\condNOINTERNAL

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:243

Parameters

F&& f
Ts&&... ts

template <typename F,
          typename Future,
          typename... Ts>
inline pika::future<
    typename pika::util::detail::
        invoke_deferred_result<F, Future, Ts...>::
            type>
then_execute(F&& f,
             Future&& predecessor,
             Ts&&... ts) const

Declared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:271

Parameters

F&& f
Future&& predecessor
Ts&&... ts