46 string filename=
"bench_"+Action::name()+
".dat";
48 INFOS(
"starting " <<filename);
52 std::vector<double> tab_mflops(nb_point);
53 std::vector<int> tab_sizes(nb_point);
58 std::vector<int> oldSizes;
59 std::vector<double> oldFlops;
60 bool hasOldResults =
read_xy_file(filename, oldSizes, oldFlops,
true);
61 int oldi = oldSizes.size() - 1;
64 Perf_Analyzer<Action> perf_action;
65 for (
int i=nb_point-1;
i>=0;
i--)
68 std::cout <<
" " <<
"size = " << tab_sizes[
i] <<
" " << std::flush;
74 cblas_saxpy(1,0,&dummy,1,&dummy,1);
78 tab_mflops[
i] = perf_action.eval_mflops(tab_sizes[
i]);
79 std::cout << tab_mflops[
i];
83 while (oldi>=0 && oldSizes[oldi]>tab_sizes[
i])
85 if (oldi>=0 && oldSizes[oldi]==tab_sizes[
i])
87 if (oldFlops[oldi]<tab_mflops[
i])
91 std::cout << oldFlops[oldi];
95 std::cout <<
" MFlops (" << nb_point-
i <<
"/" << nb_point <<
")" << std::endl;
103 std::vector<int> newSizes;
104 std::vector<double> newFlops;
107 while (
i<tab_sizes.size() &&
j<oldSizes.size())
109 if (tab_sizes[
i] == oldSizes[
j])
111 newSizes.push_back(tab_sizes[
i]);
112 newFlops.push_back(std::max(tab_mflops[
i], oldFlops[
j]));
116 else if (tab_sizes[
i] < oldSizes[
j])
118 newSizes.push_back(tab_sizes[
i]);
119 newFlops.push_back(tab_mflops[
i]);
124 newSizes.push_back(oldSizes[
j]);
125 newFlops.push_back(oldFlops[
j]);
129 while (
i<tab_sizes.size())
131 newSizes.push_back(tab_sizes[
i]);
132 newFlops.push_back(tab_mflops[
i]);
135 while (
j<oldSizes.size())
137 newSizes.push_back(oldSizes[
j]);
138 newFlops.push_back(oldFlops[
j]);
141 tab_mflops = newFlops;
142 tab_sizes = newSizes;
void read_xy_file(const string &filename, vector< int > &tab_sizes, vector< double > &tab_mflops)
Definition regularize.cxx:109
void size_lin_log(const int nb_point, const int, const int size_max, Vector &X)
Definition size_lin_log.hh:26