source: benchmark/Makefile.am @ 1d760934

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

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

  • Property mode set to 100644
File size: 11.8 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 Jun 24 16:45:42 2019
14## Update Count     : 53
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
52repeats  = 3 # 30
53skipcompile = no
54TIME_FORMAT = "%E"
55PRINT_FORMAT = %20s: #Comments needed for spacing
56
57# Dummy hack tricks
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
67.NOTPARALLEL:
68.PHONY: compile.csv ctxswitch.csv mutex.csv signal.csv
69
70## =========================================================================================================
71all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
72
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 "------------------------------------------------------"
80        @rm -f a.out .result.log *.class
81
82%.runquiet :
83        @+make $(basename $@) CFLAGS="-w" __quiet=quiet
84        @taskset -c 1 ./a.out
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} :
92        @+make -C ${abs_top_builddir}/tools repeat
93
94## =========================================================================================================
95
96FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
97
98jenkins$(EXEEXT):
99@DOifskipcompile@
100        @+make compile.csv
101@DOendif@
102        @+make ctxswitch.csv
103        @+make mutex.csv
104        @+make signal.csv
105@DOifskipcompile@
106        @cat compile.csv
107@DOendif@
108        @cat ctxswitch.csv
109        @cat mutex.csv
110        @cat signal.csv
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:
125        @echo "generator,coroutine,thread" > $@
126        @+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
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 $@
144
145## =========================================================================================================
146loop$(EXEEXT):
147        $(BENCH_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c
148
149function$(EXEEXT):
150        $(BENCH_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/function.c
151
152fetch_add$(EXEEXT):
153        $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/fetch_add.c
154
155ttst_lock$(EXEEXT):
156        $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/ttst_lock.c
157
158tls-fetch_add$(EXEEXT):
159        $(BENCH_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/tls-fetch_add.c
160
161## =========================================================================================================
162CTXSWITCH_DEPEND  =                 \
163        loop.run                                \
164        function.run                    \
165        fetch_add.run                   \
166        ttst_lock.run                   \
167        tls-fetch_add.run                       \
168        ctxswitch-pthread.run           \
169        ctxswitch-cfa_generator.run     \
170        ctxswitch-cfa_coroutine.run     \
171        ctxswitch-cfa_thread.run        \
172        ctxswitch-cfa_thread2.run       \
173        ctxswitch-upp_coroutine.run     \
174        ctxswitch-upp_thread.run        \
175        ctxswitch-goroutine.run         \
176        ctxswitch-java_thread.run
177
178
179if WITH_LIBFIBRE
180CTXSWITCH_DEPEND  +=           \
181        ctxswitch-kos_fibre.run  \
182        ctxswitch-kos_fibre2.run
183
184
185ctxswitch-kos_fibre$(EXEEXT):
186        $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
187
188ctxswitch-kos_fibre2$(EXEEXT):
189        $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
190endif
191
192ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
193
194ctxswitch-pthread$(EXEEXT):
195        $(BENCH_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
196
197ctxswitch-cfa_generator$(EXEEXT):
198        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_gen.cfa
199
200ctxswitch-cfa_coroutine$(EXEEXT):
201        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.cfa
202
203ctxswitch-cfa_thread$(EXEEXT):
204        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.cfa
205
206ctxswitch-cfa_thread2$(EXEEXT):
207        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.cfa
208
209ctxswitch-upp_coroutine$(EXEEXT):
210        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
211
212ctxswitch-upp_thread$(EXEEXT):
213        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
214
215ctxswitch-goroutine$(EXEEXT):
216        $(BENCH_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
217
218ctxswitch-java_thread$(EXEEXT):
219        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
220        @echo "#!/bin/sh" > a.out
221        @echo "java JavaThread" >> a.out
222        @chmod a+x a.out
223
224## =========================================================================================================
225mutex$(EXEEXT) :\
226        loop.run                        \
227        function.run            \
228        fetch_add.run           \
229        mutex-pthread_lock.run  \
230        mutex-upp.run           \
231        mutex-cfa1.run          \
232        mutex-cfa2.run          \
233        mutex-cfa4.run          \
234        mutex-java_thread.run
235
236mutex-pthread_lock$(EXEEXT):
237        $(BENCH_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
238
239mutex-upp$(EXEEXT):
240        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
241
242mutex-cfa1$(EXEEXT):
243        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa1.cfa
244
245mutex-cfa2$(EXEEXT):
246        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa2.cfa
247
248mutex-cfa4$(EXEEXT):
249        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa4.cfa
250
251mutex-java_thread$(EXEEXT):
252        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
253        @echo "#!/bin/sh" > a.out
254        @echo "java JavaThread" >> a.out
255        @chmod a+x a.out
256
257## =========================================================================================================
258signal$(EXEEXT) :\
259        signal-pthread_cond.run \
260        signal-upp.run          \
261        signal-cfa1.run         \
262        signal-cfa2.run         \
263        signal-cfa4.run         \
264        signal-java_thread.run
265
266signal-pthread_cond$(EXEEXT):
267        $(BENCH_V_CC)$(COMPILE)    -DBENCH_N=500000  $(srcdir)/schedint/pthreads.c
268
269signal-upp$(EXEEXT):
270        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
271
272signal-cfa1$(EXEEXT):
273        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa1.cfa
274
275signal-cfa2$(EXEEXT):
276        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa2.cfa
277
278signal-cfa4$(EXEEXT):
279        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa4.cfa
280
281signal-java_thread$(EXEEXT):
282        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
283        @echo "#!/bin/sh" > a.out
284        @echo "java JavaThread" >> a.out
285        @chmod a+x a.out
286
287
288## =========================================================================================================
289waitfor$(EXEEXT) :\
290        waitfor-upp.run         \
291        waitfor-cfa1.run                \
292        waitfor-cfa2.run                \
293        waitfor-cfa4.run
294
295waitfor-upp$(EXEEXT):
296        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
297
298waitfor-cfa1$(EXEEXT):
299        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.cfa
300
301waitfor-cfa2$(EXEEXT):
302        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.cfa
303
304waitfor-cfa4$(EXEEXT):
305        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.cfa
306
307## =========================================================================================================
308creation$(EXEEXT) :\
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              \
314        creation-upp_thread.run                 \
315        creation-goroutine.run                  \
316        creation-java_thread.run
317
318creation-cfa_coroutine$(EXEEXT):
319        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
320
321creation-cfa_coroutine_eager$(EXEEXT):
322        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa  -DEAGER
323
324creation-cfa_thread$(EXEEXT):
325        $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
326
327creation-upp_coroutine$(EXEEXT):
328        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
329
330creation-upp_thread$(EXEEXT):
331        $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
332
333creation-pthread$(EXEEXT):
334        $(BENCH_V_CC)$(COMPILE)    -DBENCH_N=250000   $(srcdir)/creation/pthreads.c
335
336creation-goroutine$(EXEEXT):
337        $(BENCH_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
338
339creation-java_thread$(EXEEXT):
340        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
341        @echo "#!/bin/sh" > a.out
342        @echo "java JavaThread" >> a.out
343        @chmod a+x a.out
344
345## =========================================================================================================
346
347compile$(EXEEXT) :\
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
356
357
358testdir = $(top_srcdir)/tests
359
360compile-array$(EXEEXT):
361        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
362
363compile-attributes$(EXEEXT):
364        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
365
366compile-empty$(EXEEXT):
367        @$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
368
369compile-expression$(EXEEXT):
370        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
371
372compile-io$(EXEEXT):
373        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
374
375compile-monitor$(EXEEXT):
376        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
377
378compile-operators$(EXEEXT):
379        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
380
381compile-thread$(EXEEXT):
382        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
383
384compile-typeof$(EXEEXT):
385        @$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
Note: See TracBrowser for help on using the repository browser.