int main(int argc, char** argv) { benchmark_type bench; auto init = [&] { pasl::util::cmdline::argmap<std::function<benchmark_type()>> m; m.add("fib", [&] { return fib_bench(); }); m.add("mfib", [&] { return mfib_bench(); }); m.add("map_incr", [&] { return map_incr_bench(); }); m.add("reduce", [&] { return reduce_bench(); }); m.add("scan", [&] { return scan_bench(); }); m.add("mcss", [&] { return mcss_bench(); }); m.add("dmdvmult", [&] { return dmdvmult_bench(); }); m.add("merge", [&] { return merge_bench(); }); m.add("quicksort", [&] { return sort_bench(); }); m.add("mergesort", [&] { return sort_bench(); }); m.add("mergesort_seqmerge", [&] { return sort_bench(); }); m.add("cilksort", [&] { return sort_bench(); }); m.add("graph", [&] { return graph_bench(); }); m.add("duplicate", [&] { return duplicate_bench(); }); m.add("ktimes", [&] { return ktimes_bench(); }); m.add("map_incr_ex", [&] { return map_incr_bench(true); }); m.add("sum_ex", [&] { return reduce_bench(reduce_plus_ex); }); m.add("max_ex", [&] { return reduce_bench(reduce_max_ex); }); m.add("reduce_ex", [&] { return reduce_bench(reduce_ex); }); m.add("duplicate_ex", [&] { return duplicate_bench(true); }); m.add("ktimes_ex", [&] { return ktimes_bench(true); }); m.add("filter_ex", [&] { return filter_bench(); }); m.add("mergesort_ex", [&] { return sort_bench(); }); bench = m.find_by_arg("bench")(); bench_init(bench); }; auto run = [&] (bool) { bench_run(bench); }; auto output = [&] { bench_output(bench); }; auto destroy = [&] { bench_destroy(bench); }; pasl::sched::launch(argc, argv, init, run, output, destroy); }
int main(int argc, char** argv) { benchmark_type bench; auto init = [&] { pasl::util::cmdline::argmap<std::function<benchmark_type()>> m; m.add("reduce", [&] { return reduce_bench(); }); m.add("mergesort", [&] { return mergesort_bench(); }); m.add("bfs", [&] { return bfs_bench(); }); bench = m.find_by_arg("bench")(); bench_init(bench); }; auto run = [&] (bool) { bench_run(bench); }; auto output = [&] { bench_output(bench); }; auto destroy = [&] { bench_destroy(bench); }; pasl::sched::launch(argc, argv, init, run, output, destroy); }