hpx::execution::experimental::persistent_auto_chunk_size#

Defined in header hpx/execution.hpp.

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

namespace hpx
namespace execution
namespace experimental
struct persistent_auto_chunk_size#
#include <persistent_auto_chunk_size.hpp>

Loop iterations are divided into pieces and then assigned to threads. The number of loop iterations combined is determined based on measurements of how long the execution of 1% of the overall number of iterations takes. This executor parameters type makes sure that as many loop iterations are combined as necessary to run for the amount of time specified.

Public Functions

inline explicit constexpr persistent_auto_chunk_size(std::uint64_t num_iters_for_timing = 0) noexcept#

Construct an persistent_auto_chunk_size executor parameters object

Note

Default constructed persistent_auto_chunk_size executor parameter types will use 0 microseconds as the execution time for each chunk and 80 microseconds as the minimal time for which any of the scheduled chunks should run.

inline explicit persistent_auto_chunk_size(hpx::chrono::steady_duration const &time_cs, std::uint64_t num_iters_for_timing = 0) noexcept#

Construct an persistent_auto_chunk_size executor parameters object

Parameters
  • time_cs – The execution time for each chunk.

  • num_iters_for_timing – [in] The number of iterations to use for measuring the execution time of one iteration

inline persistent_auto_chunk_size(hpx::chrono::steady_duration const &time_cs, hpx::chrono::steady_duration const &rel_time, std::uint64_t num_iters_for_timing = 0) noexcept#

Construct an persistent_auto_chunk_size executor parameters object

Parameters
  • rel_time – [in] The time duration to use as the minimum to decide how many loop iterations should be combined.

  • time_cs – The execution time for each chunk.

  • num_iters_for_timing – [in] The number of iterations to use for measuring the execution time of one iteration