source: benchmark/Makefile.am@ 39156ed

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

remove qthreads benchmark and correct citation name for public access to benchmarks

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