source: benchmark/Makefile.am@ 2385236

ADT arm-eh ast-experimental enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr pthread-emulation qualifiedEnum stuck-waitfor-destruct
Last change on this file since 2385236 was 2385236, checked in by Peter A. Buhr <pabuhr@…>, 7 years ago

increase repeats from 3 to 5 and add comment for about value

  • Property mode set to 100644
File size: 12.0 KB
Line 
1######################## -*- Mode: Makefile-Automake -*- ######################
2##
3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
4##
5## The contents of this file are covered under the licence agreement in the
6## file "LICENCE" distributed with Cforall.
7##
8## Makefile.am --
9##
10## Author : Peter A. Buhr
11## Created On : Sun May 31 09:08:15 2015
12## Last Modified By : Peter A. Buhr
13## Last Modified On : Mon Jul 29 18:02:19 2019
14## Update Count : 54
15###############################################################################
16
17AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names
18ACLOCAL_AMFLAGS = -I automake
19
20# applies to both programs
21include $(top_srcdir)/src/cfa.make
22
23AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
24AM_CFAFLAGS = -quiet -nodebug -in-tree
25AM_UPPFLAGS = -quiet -nodebug -multi -std=c++14
26
27BENCH_V_CC = $(__bench_v_CC_$(__quiet))
28BENCH_V_CFA = $(__bench_v_CFA_$(__quiet))
29BENCH_V_CXX = $(__bench_v_CXX_$(__quiet))
30BENCH_V_GOC = $(__bench_v_GOC_$(__quiet))
31BENCH_V_JAVAC = $(__bench_v_JAVAC_$(__quiet))
32BENCH_V_UPP = $(__bench_v_UPP_$(__quiet))
33
34__quiet = verbose
35__bench_v_CC_quiet = @
36__bench_v_CFA_quiet = @
37__bench_v_CXX_quiet = @
38__bench_v_GOC_quiet = @
39__bench_v_JAVAC_quiet = @
40__bench_v_UPP_quiet = @
41__bench_v_CC_verbose = $(AM_V_CC)
42__bench_v_CFA_verbose = $(AM_V_CFA)
43__bench_v_CXX_verbose = $(AM_V_CXX)
44__bench_v_GOC_verbose = $(AM_V_GOC)
45__bench_v_JAVAC_verbose = $(AM_V_JAVAC)
46__bench_v_UPP_verbose = $(AM_V_UPP)
47
48
49TOOLSDIR = ${abs_top_builddir}/tools/
50REPEAT = ${abs_top_builddir}/tools/repeat
51STATS = ${abs_top_srcdir}/tools/stat.py
52# NEED AT LEAST 4 DATA VALUES FOR BENCHMARKS BECAUSE THE MAX AND MIN VALUES ARE REMOVED
53repeats = 5 # 31 for benchmarks
54skipcompile = no
55TIME_FORMAT = "%E"
56PRINT_FORMAT = %20s: #Comments needed for spacing
57
58# Dummy hack tricks
59EXTRA_PROGRAMS = dummy # build but do not install
60dummy_SOURCES = dummyC.c dummyCXX.cpp
61
62dummyC.c:
63 @echo "int main() { return 0; }" > ${@}
64
65dummyCXX.cpp:
66 @echo "int main() { return 0; }" > ${@}
67
68.NOTPARALLEL:
69.PHONY: compile.csv ctxswitch.csv mutex.csv signal.csv
70
71## =========================================================================================================
72all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
73
74%.run : %$(EXEEXT) ${REPEAT}
75 @rm -f .result.log
76 @echo "------------------------------------------------------"
77 @echo $<
78 @${REPEAT} ${repeats} ./a.out | tee -a .result.log
79 @${STATS} .result.log
80 @echo "------------------------------------------------------"
81 @rm -f a.out .result.log *.class
82
83%.runquiet :
84 @+make $(basename $@) CFLAGS="-w" __quiet=quiet
85 @taskset -c 1 ./a.out
86 @rm -f a.out
87
88%.make :
89 @printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
90 @+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
91
92${REPEAT} :
93 @+make -C ${abs_top_builddir}/tools repeat
94
95## =========================================================================================================
96
97FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
98
99jenkins$(EXEEXT):
100@DOifskipcompile@
101 @+make compile.csv
102@DOendif@
103 @+make ctxswitch.csv
104 @+make mutex.csv
105 @+make signal.csv
106@DOifskipcompile@
107 @cat compile.csv
108@DOendif@
109 @cat ctxswitch.csv
110 @cat mutex.csv
111 @cat signal.csv
112
113compile.csv:
114 @echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
115 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
116 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
117 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
118 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
119 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
120 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
121 @+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
122 @+make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
123 @$(srcdir)/fixcsv.sh $@
124
125ctxswitch.csv:
126 @echo "generator,coroutine,thread" > $@
127 @+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
128 @+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
129 @+make ctxswitch-cfa_thread.runquiet >> $@
130 @$(srcdir)/fixcsv.sh $@
131
132mutex.csv:
133 @echo "1-monitor,2-monitor" > $@
134 @+make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
135 @+make mutex-cfa2.runquiet >> $@
136 @$(srcdir)/fixcsv.sh $@
137
138signal.csv:
139 @echo "signal-1,signal-2,waitfor-1,waitfor-2" > $@
140 @+make signal-cfa1.runquiet >> $@ && echo -n ',' >> $@
141 @+make signal-cfa2.runquiet >> $@ && echo -n ',' >> $@
142 @+make waitfor-cfa1.runquiet >> $@ && echo -n ',' >> $@
143 @+make waitfor-cfa2.runquiet >> $@
144 @$(srcdir)/fixcsv.sh $@
145
146## =========================================================================================================
147loop$(EXEEXT):
148 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c
149
150function$(EXEEXT):
151 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/function.c
152
153fetch_add$(EXEEXT):
154 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000 $(srcdir)/fetch_add.c
155
156ttst_lock$(EXEEXT):
157 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000 $(srcdir)/ttst_lock.c
158
159tls-fetch_add$(EXEEXT):
160 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000 $(srcdir)/tls-fetch_add.c
161
162## =========================================================================================================
163CTXSWITCH_DEPEND = \
164 loop.run \
165 function.run \
166 fetch_add.run \
167 ttst_lock.run \
168 tls-fetch_add.run \
169 ctxswitch-pthread.run \
170 ctxswitch-cfa_generator.run \
171 ctxswitch-cfa_coroutine.run \
172 ctxswitch-cfa_thread.run \
173 ctxswitch-cfa_thread2.run \
174 ctxswitch-upp_coroutine.run \
175 ctxswitch-upp_thread.run \
176 ctxswitch-goroutine.run \
177 ctxswitch-java_thread.run
178
179
180if WITH_LIBFIBRE
181CTXSWITCH_DEPEND += \
182 ctxswitch-kos_fibre.run \
183 ctxswitch-kos_fibre2.run
184
185
186ctxswitch-kos_fibre$(EXEEXT):
187 $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp -I$(LIBFIBRE_DIR) -lfibre
188
189ctxswitch-kos_fibre2$(EXEEXT):
190 $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
191endif
192
193ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
194
195ctxswitch-pthread$(EXEEXT):
196 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
197
198ctxswitch-cfa_generator$(EXEEXT):
199 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_gen.cfa
200
201ctxswitch-cfa_coroutine$(EXEEXT):
202 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.cfa
203
204ctxswitch-cfa_thread$(EXEEXT):
205 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.cfa
206
207ctxswitch-cfa_thread2$(EXEEXT):
208 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.cfa
209
210ctxswitch-upp_coroutine$(EXEEXT):
211 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
212
213ctxswitch-upp_thread$(EXEEXT):
214 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
215
216ctxswitch-goroutine$(EXEEXT):
217 $(BENCH_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
218
219ctxswitch-java_thread$(EXEEXT):
220 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
221 @echo "#!/bin/sh" > a.out
222 @echo "java JavaThread" >> a.out
223 @chmod a+x a.out
224
225## =========================================================================================================
226mutex$(EXEEXT) :\
227 loop.run \
228 function.run \
229 fetch_add.run \
230 mutex-pthread_lock.run \
231 mutex-upp.run \
232 mutex-cfa1.run \
233 mutex-cfa2.run \
234 mutex-cfa4.run \
235 mutex-java_thread.run
236
237mutex-pthread_lock$(EXEEXT):
238 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
239
240mutex-upp$(EXEEXT):
241 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
242
243mutex-cfa1$(EXEEXT):
244 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa1.cfa
245
246mutex-cfa2$(EXEEXT):
247 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa2.cfa
248
249mutex-cfa4$(EXEEXT):
250 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa4.cfa
251
252mutex-java_thread$(EXEEXT):
253 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
254 @echo "#!/bin/sh" > a.out
255 @echo "java JavaThread" >> a.out
256 @chmod a+x a.out
257
258## =========================================================================================================
259signal$(EXEEXT) :\
260 signal-pthread_cond.run \
261 signal-upp.run \
262 signal-cfa1.run \
263 signal-cfa2.run \
264 signal-cfa4.run \
265 signal-java_thread.run
266
267signal-pthread_cond$(EXEEXT):
268 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000 $(srcdir)/schedint/pthreads.c
269
270signal-upp$(EXEEXT):
271 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
272
273signal-cfa1$(EXEEXT):
274 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa1.cfa
275
276signal-cfa2$(EXEEXT):
277 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa2.cfa
278
279signal-cfa4$(EXEEXT):
280 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa4.cfa
281
282signal-java_thread$(EXEEXT):
283 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
284 @echo "#!/bin/sh" > a.out
285 @echo "java JavaThread" >> a.out
286 @chmod a+x a.out
287
288
289## =========================================================================================================
290waitfor$(EXEEXT) :\
291 waitfor-upp.run \
292 waitfor-cfa1.run \
293 waitfor-cfa2.run \
294 waitfor-cfa4.run
295
296waitfor-upp$(EXEEXT):
297 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
298
299waitfor-cfa1$(EXEEXT):
300 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa1.cfa
301
302waitfor-cfa2$(EXEEXT):
303 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa2.cfa
304
305waitfor-cfa4$(EXEEXT):
306 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa4.cfa
307
308## =========================================================================================================
309creation$(EXEEXT) :\
310 creation-pthread.run \
311 creation-cfa_coroutine.run \
312 creation-cfa_coroutine_eager.run \
313 creation-cfa_thread.run \
314 creation-upp_coroutine.run \
315 creation-upp_thread.run \
316 creation-goroutine.run \
317 creation-java_thread.run
318
319creation-cfa_coroutine$(EXEEXT):
320 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
321
322creation-cfa_coroutine_eager$(EXEEXT):
323 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa -DEAGER
324
325creation-cfa_thread$(EXEEXT):
326 $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
327
328creation-upp_coroutine$(EXEEXT):
329 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
330
331creation-upp_thread$(EXEEXT):
332 $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
333
334creation-pthread$(EXEEXT):
335 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
336
337creation-goroutine$(EXEEXT):
338 $(BENCH_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
339
340creation-java_thread$(EXEEXT):
341 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
342 @echo "#!/bin/sh" > a.out
343 @echo "java JavaThread" >> a.out
344 @chmod a+x a.out
345
346## =========================================================================================================
347
348compile$(EXEEXT) :\
349 compile-array.make \
350 compile-attributes.make \
351 compile-empty.make \
352 compile-expression.make \
353 compile-io.make \
354 compile-monitor.make \
355 compile-operators.make \
356 compile-typeof.make
357
358
359testdir = $(top_srcdir)/tests
360
361compile-array$(EXEEXT):
362 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
363
364compile-attributes$(EXEEXT):
365 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
366
367compile-empty$(EXEEXT):
368 @$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
369
370compile-expression$(EXEEXT):
371 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
372
373compile-io$(EXEEXT):
374 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
375
376compile-monitor$(EXEEXT):
377 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
378
379compile-operators$(EXEEXT):
380 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
381
382compile-thread$(EXEEXT):
383 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
384
385compile-typeof$(EXEEXT):
386 @$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
Note: See TracBrowser for help on using the repository browser.