#include #include #include "common.h" using namespace bench; constexpr unsigned samples = 30, iterations = 10, cores = 4; constexpr unsigned n = 64; constexpr std::size_t vecSize = 1'000; constexpr auto eFarm = n*eTaskV; BASELINE(Farm, Handwritten, samples, iterations) { for(unsigned i = 0; i < n; ++i) taskV(); } BENCHMARK(Farm, Skeleton, samples, iterations) { auto farm = alsk::edsl::implement(eFarm); farm(); } BASELINE(FarmPar, Handwritter, samples, iterations) { #pragma omp parallel for num_threads(cores) for(unsigned i = 0; i < n; ++i) taskV(); } BENCHMARK(FarmPar, Parallel, samples, iterations) { auto farm = alsk::edsl::implement(eFarm); farm.executor.cores = cores; farm(); }