hpx/functional/traits/get_task_size.hpp#
Defined in header hpx/functional/traits/get_task_size.hpp.
See Public API for a list of names and headers that are part of the public HPX API.
-
namespace hpx
Top level namespace.
-
namespace threads
Enums
-
enum class task_size : std::uint8_t#
The expected run time of a task, a hint the scheduler may use. A task with an unknown size is scheduled as it would be without the hint. The sizes are ordered by run time, see task_size_duration.
Values:
-
enumerator unknown#
-
enumerator nano#
about a nanosecond, mostly for loop bodies
-
enumerator small_#
the underscore is to work around ‘small’ being defined to char on Windows
-
enumerator medium#
-
enumerator large#
-
enumerator unknown#
Functions
-
constexpr std::chrono::nanoseconds task_size_duration(task_size const size) noexcept#
The run time a task of the given
sizestands for. Each size stands for a hundred times the run time of the one below it: nano about 1 ns, small about 100 ns, medium about 10 us, large about 1 ms or more. An unknown size gives a duration of zero. Callers should rely on std::chrono arithmetic only, not on the unit or the count of the returned duration, which may change once tasks can carry real run times.
-
constexpr task_size bulk_task_size(task_size const size, std::size_t const calls) noexcept#
The size of a task that calls a function of the given
sizecallstimes, for instance a hundred nano calls make a small task, a hundred small calls a medium one and a hundred medium calls a large one. The size of a task calling a function of unknown size is unknown.
-
enum class task_size : std::uint8_t#
-
namespace traits
Functions
-
HPX_TASK_SIZE_BUILTIN_OPERATION(plus)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(minus)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(multiplies)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(divides)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(modulus)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(negate)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(equal_to)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(not_equal_to)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(less)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(greater)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(less_equal)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(greater_equal)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(logical_and)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(logical_or)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(logical_not)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(bit_and)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(bit_or)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(bit_xor)#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(bit_not)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(equal_to)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(not_equal_to)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(less)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(greater)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(less_equal)#
-
HPX_TASK_SIZE_BUILTIN_RANGES_OPERATION(greater_equal)#
Variables
-
template<typename F, threads::task_size Size = threads::task_size::unknown, typename Enable = void>
struct get_task_size#
-
template<typename F, threads::task_size Size>
struct get_task_size<F, Size> : public hpx::traits::get_task_size<std::remove_cvref_t<F>, Size># Subclassed by hpx::traits::get_task_size< hpx::detail::bound< F, Ts… >, Size >, hpx::traits::get_task_size< hpx::detail::bound_back< F, Ts… >, Size >, hpx::traits::get_task_size< hpx::detail::bound_front< F, Ts… >, Size >
-
template<typename F, typename ...Args>
struct get_task_size_for#
-
template<typename F, typename ...Args>
struct get_task_size_for<F, Args...> : public hpx::traits::get_task_size_for<std::remove_cvref_t<F>, Args...>
-
template<typename F>
struct typed_builtin_operation_operand#
-
HPX_TASK_SIZE_BUILTIN_OPERATION(plus)#
-
namespace threads