gtopt::SDDPWorkPool class final

Work pool specialised for the SDDP solver with tuple priority key.

Uses SDDPTaskKey = std::tuple<int,int,int,int> as the secondary sort key with the default std::less<SDDPTaskKey> comparator (lexicographic). A concrete derived class so that class SDDPWorkPool; can be forward- declared in headers that only need the pointer type.

Base classes

template<typename Key = int64_t, typename KeyCompare KeyCompare = std::less<Key>>
class BasicWorkPool<SDDPTaskKey>
Adaptive thread pool with generic priority key.

Public types

using key_compare = std::less<SDDPTaskKey>
using key_type = SDDPTaskKey
using Requirements = BasicTaskRequirements<SDDPTaskKey>

Public functions

auto format_statistics() const -> std::string noexcept
auto get_statistics() const -> Statistics noexcept
auto log_statistics() const -> void
auto shutdown() -> void
auto start() -> void
auto submit(Func&& func, const Requirements& req = Requirements(), Args && ... args) -> std::expected< std::future< std::invoke_result_t< Func, Args... > >, std::error_code > -> auto
auto submit_lambda(Func&& func, Requirements req = {}) -> auto

Typedef documentation

using gtopt::SDDPWorkPool::key_compare = std::less<SDDPTaskKey>

using gtopt::SDDPWorkPool::key_type = SDDPTaskKey

using gtopt::SDDPWorkPool::Requirements = BasicTaskRequirements<SDDPTaskKey>

Function documentation

std::string gtopt::SDDPWorkPool::format_statistics() const noexcept

Statistics gtopt::SDDPWorkPool::get_statistics() const noexcept

void gtopt::SDDPWorkPool::log_statistics() const

void gtopt::SDDPWorkPool::shutdown()

void gtopt::SDDPWorkPool::start()

auto gtopt::SDDPWorkPool::submit(Func&& func, const Requirements& req = Requirements(), Args && ... args) -> std::expected< std::future< std::invoke_result_t< Func, Args... > >, std::error_code >

auto gtopt::SDDPWorkPool::submit_lambda(Func&& func, Requirements req = {})