alsk/celero/executor/farm.cpp

53 lines
1.4 KiB
C++

#include <celero/Celero.h>
#include "common.h"
constexpr unsigned samples = 12, iterations = 10, cores = 4;
BASELINE(ExecFarm, Sequential, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::Sequential>(bench::exprFarm);
f();
}
BENCHMARK(ExecFarm, FirstLevelEqui, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::FirstLevelEqui>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, FirstLevelGreedy, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::FirstLevelGreedy>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, FirstLevelNoOpti, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::FirstLevelNoOpti>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, DynamicPool, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::DynamicPool>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, StaticPool, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::StaticPool>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, StaticPoolId, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::StaticPoolId>(bench::exprFarm);
f.executor.cores = cores;
f();
}
BENCHMARK(ExecFarm, StaticThread, samples, iterations) {
auto f = alsk::edsl::implement<alsk::exec::StaticThread>(bench::exprFarm);
f.executor.cores = cores;
f();
}