hpx/distribution_policies/target_distribution_policy.hpp#

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace components

Variables

static const target_distribution_policy target = {}#

A predefined instance of the target_distribution_policy. It will represent the local locality and will place all items to create here.

struct target_distribution_policy#
#include <target_distribution_policy.hpp>

This class specifies the parameters for a simple distribution policy to use for creating (and evenly distributing) a given number of items on a given set of localities.

Public Functions

target_distribution_policy() = default#

Default-construct a new instance of a target_distribution_policy. This policy will represent one locality (the local locality).

inline target_distribution_policy operator()(id_type const &id) const#

Create a new target_distribution_policy representing the given locality

Parameters

loc – [in] The locality the new instance should represent

template<typename Component, typename ...Ts>
inline hpx::future<hpx::id_type> create(Ts&&... vs) const#

Create one object on one of the localities associated by this policy instance

Note

This function is part of the placement policy implemented by this class

Parameters

vs – [in] The arguments which will be forwarded to the constructor of the new object.

Returns

A future holding the global address which represents the newly created object

template<typename Component, typename ...Ts>
inline hpx::future<std::vector<bulk_locality_result>> bulk_create(std::size_t count, Ts&&... vs) const#

Create multiple objects on the localities associated by this policy instance

Note

This function is part of the placement policy implemented by this class

Parameters
  • count – [in] The number of objects to create

  • vs – [in] The arguments which will be forwarded to the constructors of the new objects.

Returns

A future holding the list of global addresses which represent the newly created objects

template<typename Action, typename ...Ts>
inline async_result<Action>::type async(launch policy, Ts&&... vs) const#
template<typename Action, typename Callback, typename ...Ts>
inline async_result<Action>::type async_cb(launch policy, Callback &&cb, Ts&&... vs) const#

Note

This function is part of the invocation policy implemented by this class

template<typename Action, typename Continuation, typename ...Ts>
inline bool apply(Continuation &&c, threads::thread_priority priority, Ts&&... vs) const#

Note

This function is part of the invocation policy implemented by this class

template<typename Action, typename ...Ts>
inline bool apply(threads::thread_priority priority, Ts&&... vs) const#
template<typename Action, typename Continuation, typename Callback, typename ...Ts>
inline bool apply_cb(Continuation &&c, threads::thread_priority priority, Callback &&cb, Ts&&... vs) const#

Note

This function is part of the invocation policy implemented by this class

template<typename Action, typename Callback, typename ...Ts>
inline bool apply_cb(threads::thread_priority priority, Callback &&cb, Ts&&... vs) const#
inline std::size_t get_num_localities() const#

Returns the number of associated localities for this distribution policy

Note

This function is part of the creation policy implemented by this class

inline hpx::id_type get_next_target() const#

Returns the locality which is anticipated to be used for the next async operation

template<typename Action>
struct async_result#
#include <target_distribution_policy.hpp>

Note

This function is part of the invocation policy implemented by this class

Public Types

using type = hpx::future<typename traits::promise_local_result<typename hpx::traits::extract_action<Action>::remote_result_type>::type>#