38#if defined(GROUP2_HAVE_TBB)
78 const char* p = std::getenv(
"GROUP2_SERVER_PARALLEL");
79 const bool wantOff = p !=
nullptr && (p[0] ==
'0' || p[0] ==
'f' || p[0] ==
'F' || p[0] ==
'n' || p[0] ==
'N');
80 const bool wantOn = !wantOff;
82#if defined(GROUP2_HAVE_TBB)
83 SDL_Log(
"[perf] parallel kernels: %s (TBB-backed; default ON, set GROUP2_SERVER_PARALLEL=0 to disable)",
84 wantOn ?
"ENABLED" :
"disabled");
86 SDL_Log(
"[perf] parallel kernels: sequential fallback (TBB not linked)");
94template <
class Iter,
class Fn>
97#if defined(GROUP2_HAVE_TBB)
98 const auto distance = std::distance(begin, end);
100 std::for_each(std::execution::par_unseq, begin, end, std::forward<Fn>(fn));
104 std::for_each(begin, end, std::forward<Fn>(fn));
Definition Parallel.hpp:43
void parallelFor(Iter begin, Iter end, Fn &&fn)
Call fn(*it) for every element in [begin, end).
Definition Parallel.hpp:95
std::atomic< bool > parallelEnabled
Master switch for parallel execution.
Definition Parallel.hpp:64
void initParallelFromEnv()
Initialize from environment.
Definition Parallel.hpp:76
constexpr std::size_t k_parallelThreshold
Minimum items below which parallelFor runs sequentially even when the master switch is on.
Definition Parallel.hpp:69