#include "matrix.hpp" #include int M = 0; int N = 0; int B = 0; int MB = 0; int NB = 0; double **matrix = nullptr; void wavefront( const std::string& model, const unsigned num_threads, const unsigned num_rounds ) { std::cout << std::setw(12) << "size" << std::setw(12) << "runtime" << std::endl; for(int S=32; S<=4096; S += 128) { M = N = S; B = 8; MB = (M/B) + (M%B>0); NB = (N/B) + (N%B>0); double runtime {0.0}; init_matrix(); for(unsigned j=0; jcheck([] (const std::string& m) { if(m != "tbb" && m != "omp" && m != "tf") { return "model name should be \"tbb\", \"omp\", or \"tf\""; } return ""; }); CLI11_PARSE(app, argc, argv); std::cout << "model=" << model << ' ' << "num_threads=" << num_threads << ' ' << "num_rounds=" << num_rounds << ' ' << std::endl; wavefront(model, num_threads, num_rounds); return 0; }