#include #include "common.h" constexpr unsigned samples = 12, iterations = 10, cores = 4; constexpr std::size_t vecSize = 1'000; constexpr int minValue = -250, maxValue = +250; BASELINE(ExecTwoLevelsHard, Sequential, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, FirstLevelEqui, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, FirstLevelGreedy, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, FirstLevelNoOpti, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, DynamicPool, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, StaticPool, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, StaticPoolId, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); } BENCHMARK(ExecTwoLevelsHard, StaticThread, samples, iterations) { auto f = alsk::edsl::implement(bench::exprTwoS); f.executor.cores = cores; f.skeleton.task.task.task<0>().size = vecSize; f(minValue, maxValue); }