source: benchmark/Makefile.am @ da7454c

ADTarm-ehast-experimentalenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since da7454c was dc33b5b, checked in by Peter A. Buhr <pabuhr@…>, 5 years ago

update benchmarks and add benchmarks for qthreads

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