@@ -81,14 +81,14 @@ void runBenchmarkRandom(std::ostream& out)
8181
8282void runBenchmarkFanout (std::ostream& out)
8383{
84- // RUN_BENCHMARK(out, 5, Benchmark_Fanout, BenchmarkParams_Fanout(10, 10000, 0),
85- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain );
84+ RUN_BENCHMARK (out, 5 , Benchmark_Fanout, BenchmarkParams_Fanout (10 , 10000 , 0 ),
85+ ToposortSTDomain, ToposortDomain, PulsecountDomain);
8686
87- // RUN_BENCHMARK(out, 5, Benchmark_Fanout, BenchmarkParams_Fanout(100, 10000, 0),
88- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain );
87+ RUN_BENCHMARK (out, 5 , Benchmark_Fanout, BenchmarkParams_Fanout (100 , 10000 , 0 ),
88+ ToposortSTDomain, ToposortDomain, PulsecountDomain);
8989
90- // RUN_BENCHMARK(out, 5, Benchmark_Fanout, BenchmarkParams_Fanout(1000, 10000, 0),
91- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain );
90+ RUN_BENCHMARK (out, 5 , Benchmark_Fanout, BenchmarkParams_Fanout (1000 , 10000 , 0 ),
91+ ToposortSTDomain, ToposortDomain, PulsecountDomain);
9292
9393 RUN_BENCHMARK (out, 3 , Benchmark_Fanout, BenchmarkParams_Fanout (10 , 10 , 10 ),
9494 ToposortSTDomain, ToposortDomain, PulsecountDomain);
@@ -100,41 +100,41 @@ void runBenchmarkFanout(std::ostream& out)
100100 ToposortSTDomain, ToposortDomain, PulsecountDomain);
101101}
102102
103- void runBenchmarkSequence (std::ostream& out)
104- {
105- // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(10, 10000, 0),
106- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
103+ // void runBenchmarkSequence(std::ostream& out)
104+ // {
105+ // //RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(10, 10000, 0),
106+ // // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
107107
108- // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(100, 10000, 0),
109- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
108+ // //RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(100, 10000, 0),
109+ // // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
110110
111- // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(1000, 10000, 0),
112- // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
111+ // //RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(1000, 10000, 0),
112+ // // ToposortSTDomain, ToposortDomain, ELMDomain, PulsecountDomain, SourceSetDomain);
113113
114- RUN_BENCHMARK (out, 3 , Benchmark_Sequence, BenchmarkParams_Sequence (10 , 10 , 10 ),
115- ToposortSTDomain, ToposortDomain, PulsecountDomain);
114+ // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(10, 10, 10),
115+ // ToposortSTDomain, ToposortDomain, PulsecountDomain);
116116
117- RUN_BENCHMARK (out, 3 , Benchmark_Sequence, BenchmarkParams_Sequence (100 , 10 , 10 ),
118- ToposortSTDomain, ToposortDomain, PulsecountDomain);
117+ // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(100, 10, 10),
118+ // ToposortSTDomain, ToposortDomain, PulsecountDomain);
119119
120- RUN_BENCHMARK (out, 3 , Benchmark_Sequence, BenchmarkParams_Sequence (1000 , 10 , 10 ),
121- ToposortSTDomain, ToposortDomain, PulsecountDomain);
122- }
120+ // RUN_BENCHMARK(out, 3, Benchmark_Sequence, BenchmarkParams_Sequence(1000, 10, 10),
121+ // ToposortSTDomain, ToposortDomain, PulsecountDomain);
122+ // }
123123
124- void runBenchmarkLifeSim (std::ostream& out)
125- {
126- // RUN_BENCHMARK(std::cout, 1, Benchmark_LifeSim, BenchmarkParams_LifeSim(150, 1000),
127- // ELMDomain );
124+ // void runBenchmarkLifeSim(std::ostream& out)
125+ // {
126+ // //RUN_BENCHMARK(std::cout, 1, Benchmark_LifeSim, BenchmarkParams_LifeSim(150, 10 , 1000),
127+ // // ToposortDomain );
128128
129- // RUN_BENCHMARK(std::cout, 1, Benchmark_LifeSim, BenchmarkParams_LifeSim(250, 30, 10000),
130- // SourceSetDomain, PulsecountDomain);
129+ // //RUN_BENCHMARK(std::cout, 1, Benchmark_LifeSim, BenchmarkParams_LifeSim(250, 30, 10000),
130+ // // SourceSetDomain, PulsecountDomain);
131131
132- RUN_BENCHMARK (out, 1 , Benchmark_LifeSim, BenchmarkParams_LifeSim (100 , 15 , 10000 ),
133- ToposortSTDomain, ToposortDomain, PulsecountDomain);
132+ // // RUN_BENCHMARK(out, 1, Benchmark_LifeSim, BenchmarkParams_LifeSim(100, 15, 10000),
133+ // // ToposortSTDomain, ToposortDomain, PulsecountDomain);
134134
135- // RUN_BENCHMARK(out, 3, Benchmark_LifeSim, BenchmarkParams_LifeSim(100, 50, 100),
136- // PulsecountDomain, PulsecountDomain);
137- }
135+ // //RUN_BENCHMARK(out, 3, Benchmark_LifeSim, BenchmarkParams_LifeSim(100, 50, 100),
136+ // // PulsecountDomain, PulsecountDomain);
137+ // }
138138
139139void runBenchmarks ()
140140{
@@ -144,21 +144,21 @@ void runBenchmarks()
144144 logfile.open (path.c_str ());
145145
146146 // === GRID
147- // runBenchmarkGrid(logfile);
148-
149- // runBenchmarkFlooding(logfile);
147+ runBenchmarkGrid (logfile);
150148
151149 // === RANDOM
152- // runBenchmarkRandom(logfile);
150+ if (0 )
151+ runBenchmarkRandom (logfile);
153152
154153 // === FANOUT
155- // runBenchmarkFanout(logfile);
154+ if (0 )
155+ runBenchmarkFanout (logfile);
156156
157157 // === SEQUENCE
158158 // runBenchmarkSequence(logfile);
159159
160160 // === LIFESIM
161- runBenchmarkLifeSim (logfile);
161+ // runBenchmarkLifeSim(logfile);
162162
163163 logfile.close ();
164164}
@@ -233,9 +233,34 @@ void profileBenchmark()
233233
234234} // ~anonymous namespace
235235
236- int main ()
236+ #include < algorithm>
237+
238+ int main (int argc, char * argv[])
237239{
238- // runBenchmarks();
239- // debugBenchmarks();
240- profileBenchmark ();
241- }
240+ auto begin = argv;
241+ auto end = argv + argc;
242+
243+ // auto getCmdOption = [&](const std::string & option) -> char*
244+ // {
245+ // char ** itr = std::find(begin, end, option);
246+ // if (itr != end && ++itr != end)
247+ // {
248+ // return *itr;
249+ // }
250+ // return 0;
251+ // };
252+
253+ auto cmdOptionExists = [&](const std::string& option) -> bool
254+ {
255+ return std::find (begin, end, option) != end;
256+ };
257+
258+ std::cout << " -d to debug, -p to profile. run by default" << std::endl;
259+
260+ if (cmdOptionExists (" -d" ))
261+ debugBenchmarks ();
262+ else if (cmdOptionExists (" -p" ))
263+ profileBenchmark ();
264+ else
265+ runBenchmarks ();
266+ }
0 commit comments