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
template <typename F, typename... Ts>
pika::future<
typename pika::util::detail::
invoke_deferred_result<F, Ts...>::type>
async_execute(F&& f, Ts&&... ts) constDeclared 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
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) constDeclared 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)
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
constexpr const parallel_policy_executor<Policy>&
context() const noexceptDeclared 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_)
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())
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())
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())
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_)
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
template <typename F, typename... Ts>
void post(F&& f, Ts&&... ts) constDeclared 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
template <typename F, typename... Ts>
typename pika::util::detail::
invoke_deferred_result<F, Ts...>::type
sync_execute(F&& f, Ts&&... ts) constDescription
\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
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) constDeclared at: libs/pika/executors/include/pika/executors/parallel_executor.hpp:271
Parameters
- F&& f
- Future&& predecessor
- Ts&&... ts