source: benchmark/Makefile.am @ 8dc6f84

Last change on this file since 8dc6f84 was 98edf2f, checked in by Peter A. Buhr <pabuhr@…>, 17 months ago

found further uses of concurrent directory

  • Property mode set to 100644
File size: 20.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
[98edf2f]13## Last Modified On : Fri May 26 12:13:48 2023
14## Update Count     : 260
[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
[bcadb26]21include $(top_srcdir)/tools/build/cfa.make
[7a7ab42]22
[dd1cc02]23AM_CFLAGS = -O3 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
[dd9e1ca]24AM_CFAFLAGS = -quiet -nodebug
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))
[90cb6f7]30BENCH_V_UPP = $(__bench_v_UPP_$(__quiet))
[528ccc8]31BENCH_V_GOC = $(__bench_v_GOC_$(__quiet))
[1d72a11]32BENCH_V_PY = $(__bench_v_PY_$(__quiet))
[90cb6f7]33BENCH_V_RUSTC = $(__bench_v_RUSTC_$(__quiet))
[6e540ea]34BENCH_V_NODEJS = $(__bench_v_NODEJS_$(__quiet))
[528ccc8]35BENCH_V_JAVAC = $(__bench_v_JAVAC_$(__quiet))
36
37__quiet = verbose
38__bench_v_CC_quiet = @
39__bench_v_CFA_quiet = @
40__bench_v_CXX_quiet = @
[90cb6f7]41__bench_v_UPP_quiet = @
[528ccc8]42__bench_v_GOC_quiet = @
[90cb6f7]43__bench_v_RUSTC_quiet = @
[528ccc8]44__bench_v_JAVAC_quiet = @
45__bench_v_CC_verbose = $(AM_V_CC)
46__bench_v_CFA_verbose = $(AM_V_CFA)
47__bench_v_CXX_verbose = $(AM_V_CXX)
[90cb6f7]48__bench_v_UPP_verbose = $(AM_V_UPP)
[528ccc8]49__bench_v_GOC_verbose = $(AM_V_GOC)
[1d72a11]50__bench_v_PY_verbose = $(AM_V_PY)
51__bench_v_RUSTC_verbose = $(AM_V_RUST)
[6e540ea]52__bench_v_NODEJS_verbose = $(AM_V_NODEJS)
[528ccc8]53__bench_v_JAVAC_verbose = $(AM_V_JAVAC)
54
55
[5e49e47]56TOOLSDIR = ${abs_top_builddir}/tools/
57REPEAT   = ${abs_top_builddir}/tools/repeat
58STATS    = ${abs_top_srcdir}/tools/stat.py
[2385236]59# NEED AT LEAST 4 DATA VALUES FOR BENCHMARKS BECAUSE THE MAX AND MIN VALUES ARE REMOVED
[c12869e]60repeats  = 13 # 31 for benchmarks
[c6f1f3e]61arch     = x64
[05f4b85]62skipcompile = no
[a5b7905]63TIME_FORMAT = "%E"
[2086ab2]64PRINT_FORMAT = %20s: #Comments needed for spacing
[034165a]65
[d0c91a6]66# Dummy hack tricks
[5e49e47]67EXTRA_PROGRAMS = dummy # build but do not install
[c2bc6d5]68nodist_dummy_SOURCES = dummyC.c dummyCXX.cpp
[5e49e47]69
70dummyC.c:
[580c11b]71        echo "int main() { return 0; }" > ${@}
[5e49e47]72
73dummyCXX.cpp:
[580c11b]74        echo "int main() { return 0; }" > ${@}
[5e49e47]75
[034165a]76.NOTPARALLEL:
[4aac9ff]77.PHONY: jenkins cleancsv
[ac93b228]78
[43fa66e]79## =========================================================================================================
[90cb6f7]80
[c2bc6d5]81# all is used by make dist so ignore it
82all:
83
84all-bench : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) schedint$(EXEEXT) schedext$(EXEEXT) creation$(EXEEXT)
[4cedd9f]85
[4eb07bc]86basic_loop_DURATION = 15000000000
87basic_function_DURATION = 10000000000
[2316525]88basic_tls_fetch_add_DURATION = 10000000000
[4eb07bc]89basic_DURATION = 250000000
90
[c93fd72]91ctxswitch_pthread_DURATION = 25000000
[9e1fa35]92ctxswitch_rust_thread_DURATION = $(ctxswitch_pthread_DURATION)
[4eb07bc]93ctxswitch_cfa_generator_DURATION = 5000000000
[8633485b]94ctxswitch_nodejs_await_DURATION = 5000000
[4eb07bc]95ctxswitch_DURATION = 100000000
96
[26fd986]97#mutex_java_DURATION = 10000000
[4eb07bc]98mutex_DURATION = 50000000
99
[26fd986]100schedint_pthread_DURATION = 1000000
101schedint_java_DURATION = $(schedint_pthread_DURATION)
102schedint_rust_DURATION = $(schedint_pthread_DURATION)
103schedint_DURATION = 10000000
[4eb07bc]104
[26fd986]105schedext_DURATION = 10000000
[4eb07bc]106
107creation_pthread_DURATION = 250000
[26fd986]108creation_rust_thread_DURATION = ${creation_pthread_DURATION}
109creation_java_thread_DURATION = ${creation_pthread_DURATION}
[9e1fa35]110creation_cfa_coroutine_DURATION = 100000000
111creation_cfa_coroutine_eager_DURATION = 10000000
[dfda49f]112creation_cfa_generator_DURATION = 1000000000
[9e1fa35]113creation_upp_coroutine_DURATION = ${creation_cfa_coroutine_eager_DURATION}
114creation_DURATION = 10000000
[4eb07bc]115
[a5b7905]116%.run : %$(EXEEXT) ${REPEAT}
[b2525d9]117        @rm -f .result.log
118        @echo "------------------------------------------------------"
119        @echo $<
120        @${REPEAT} ${repeats} -- ./a.out\
[c93fd72]121                $(if ${$(subst -,_,$(basename $@))_DURATION},\
122                        ${$(subst -,_,$(basename $@))_DURATION},\
123                        ${$(firstword $(subst -, ,$(basename $@)))_DURATION}) | tee -a .result.log
[b2525d9]124        @${STATS} .result.log
125        @echo "------------------------------------------------------"
126        @rm -f a.out .result.log *.class
[ac93b228]127
[c12869e]128#       ${REPEAT} ${repeats} -- /usr/bin/time -f "%Uu %Ss %Er %Mkb" ./a.out
129
[a5b7905]130%.runquiet :
[580c11b]131        +make $(basename $@) CFLAGS="-w" __quiet=quiet
132        taskset -c 1 ./a.out
133        rm -f a.out
[a5b7905]134
135%.make :
[580c11b]136        printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
137        +/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
[a5b7905]138
139${REPEAT} :
[580c11b]140        +make -C ${abs_top_builddir}/tools repeat
[a5b7905]141
142## =========================================================================================================
143
[f15fe0a]144FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
145
[4aac9ff]146cleancsv:
[6ca0dab]147        rm -f compile.csv basic.csv ctxswitch.csv mutex.csv schedint.csv
[4aac9ff]148
149jenkins$(EXEEXT): cleancsv
[05f4b85]150@DOifskipcompile@
[b2525d9]151        @+make --silent compile.csv
152        @-+make --silent compile.diff.csv
[05f4b85]153@DOendif@
[b2525d9]154        @+make --silent ctxswitch.csv
155        @-+make --silent ctxswitch.diff.csv
156        @+make --silent mutex.csv
157        @-+make --silent mutex.diff.csv
158        @+make --silent schedint.csv
159        @-+make --silent schedint.diff.csv
[d9f2874]160@DOifskipcompile@
[c6f1f3e]161        cat compile.csv
162        -cat compile.diff.csv
[d9f2874]163@DOendif@
[c6f1f3e]164        cat ctxswitch.csv
165        -cat ctxswitch.diff.csv
166        cat mutex.csv
167        -cat mutex.diff.csv
[6ca0dab]168        cat schedint.csv
169        -cat schedint.diff.csv
[f15fe0a]170
171compile.csv:
[4aac9ff]172        echo "building $@"
[580c11b]173        echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
174        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
175        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
176        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
177        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
178        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
179        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
180        +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
181        +make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
182        $(srcdir)/fixcsv.sh $@
[f15fe0a]183
184ctxswitch.csv:
[4aac9ff]185        echo "building $@"
[580c11b]186        echo "generator,coroutine,thread" > $@
187        +make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
188        +make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
189        +make ctxswitch-cfa_thread.runquiet >> $@
190        $(srcdir)/fixcsv.sh $@
[f15fe0a]191
192mutex.csv:
[4aac9ff]193        echo "building $@"
[580c11b]194        echo "1-monitor,2-monitor" > $@
195        +make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
196        +make mutex-cfa2.runquiet >> $@
197        $(srcdir)/fixcsv.sh $@
[f15fe0a]198
[65502d8]199# use --no-print-directory to generate csv appropriately
200mutexStmt.csv:
201        echo "building $@"
202        echo "1-lock,2-lock,4-lock,8-lock,1-no-stmt-lock,2-no-stmt-lock,4-no-stmt-lock,8-no-stmt-lock,1-monitor,2-monitor,4-monitor" > $@
203        +make mutexStmt-lock1.runquiet >> $@ && echo -n ',' >> $@
204        +make mutexStmt-lock2.runquiet >> $@ && echo -n ',' >> $@
205        +make mutexStmt-lock4.runquiet >> $@ && echo -n ',' >> $@
206        +make mutexStmt-lock8.runquiet >> $@ && echo -n ',' >> $@
207        +make mutexStmt-no-stmt-lock1.runquiet >> $@ && echo -n ',' >> $@
208        +make mutexStmt-no-stmt-lock2.runquiet >> $@ && echo -n ',' >> $@
209        +make mutexStmt-no-stmt-lock4.runquiet >> $@ && echo -n ',' >> $@
210        +make mutexStmt-no-stmt-lock8.runquiet >> $@ && echo -n ',' >> $@
211        +make mutexStmt-monitor1.runquiet >> $@ && echo -n ',' >> $@
212        +make mutexStmt-monitor2.runquiet >> $@ && echo -n ',' >> $@
213        +make mutexStmt-monitor4.runquiet >> $@
214        $(srcdir)/fixcsv.sh $@
215
[6ca0dab]216schedint.csv:
[4aac9ff]217        echo "building $@"
[26fd986]218        echo "schedint-1,schedint-2,schedext-1,schedext-2" > $@
219        +make schedint-cfa1.runquiet >> $@ && echo -n ',' >> $@
220        +make schedint-cfa2.runquiet >> $@ && echo -n ',' >> $@
221        +make schedext-cfa1.runquiet >> $@ && echo -n ',' >> $@
222        +make schedext-cfa2.runquiet >> $@
[580c11b]223        $(srcdir)/fixcsv.sh $@
[ac93b228]224
[c6f1f3e]225%.diff.csv: %.csv
[580c11b]226        test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
227        $(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
[c6f1f3e]228
[d885a58]229## =========================================================================================================
230
[4eb07bc]231BASIC_DEPEND  =                                 \
232        basic-loop.run                          \
[90cb6f7]233        basic-function.run                      \
234        basic-fetch_add.run                     \
235        basic-ttst_lock.run                     \
236        basic-tls-fetch_add.run
237
238basic-loop$(EXEEXT):
239        $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/loop.c
240
241basic-function$(EXEEXT):
242        $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/function.c
243
244basic-fetch_add$(EXEEXT):
245        $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/fetch_add.c
246
247basic-ttst_lock$(EXEEXT):
248        $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/ttst_lock.c
249
250basic-tls-fetch_add$(EXEEXT):
251        $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/tls_fetch_add.c
[d885a58]252
[90cb6f7]253basic$(EXEEXT): $(BASIC_DEPEND)
[d885a58]254
[034165a]255## =========================================================================================================
[90cb6f7]256
257CTXSWITCH_DEPEND  =                     \
[dc33b5b]258        ctxswitch-cfa_generator.run     \
[b7170a64]259        ctxswitch-cfa_coroutine.run     \
260        ctxswitch-cfa_thread.run        \
[6810fcb]261        ctxswitch-cfa_thread2.run       \
[b7170a64]262        ctxswitch-upp_coroutine.run     \
[50abab9]263        ctxswitch-upp_thread.run        \
[c12869e]264        ctxswitch-python_coroutine.run  \
265        ctxswitch-nodejs_coroutine.run  \
[7ac3151]266        ctxswitch-nodejs_await.run      \
[c12869e]267        ctxswitch-goroutine_thread.run  \
[90cb6f7]268        ctxswitch-rust_thread.run       \
[580c11b]269        ctxswitch-nodejs_coroutine.run  \
[c12869e]270        ctxswitch-java_thread.run       \
271        ctxswitch-pthread.run
[dc33b5b]272
[41cca44]273if WITH_LIBFIBRE
[90cb6f7]274CTXSWITCH_DEPEND  +=                    \
275        ctxswitch-kos_fibre.run         \
[41cca44]276        ctxswitch-kos_fibre2.run
277
278ctxswitch-kos_fibre$(EXEEXT):
[528ccc8]279        $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
[41cca44]280
281ctxswitch-kos_fibre2$(EXEEXT):
[528ccc8]282        $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
[41cca44]283endif
284
285ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
286
[dc33b5b]287ctxswitch-cfa_generator$(EXEEXT):
[90cb6f7]288        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_gen.cfa
[dc33b5b]289
[034165a]290ctxswitch-cfa_coroutine$(EXEEXT):
[90cb6f7]291        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_cor.cfa
[034165a]292
293ctxswitch-cfa_thread$(EXEEXT):
[90cb6f7]294        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_thrd.cfa
[6810fcb]295
296ctxswitch-cfa_thread2$(EXEEXT):
[90cb6f7]297        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_thrd2.cfa
[034165a]298
299ctxswitch-upp_coroutine$(EXEEXT):
[90cb6f7]300        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/ctxswitch/upp_cor.cc
[034165a]301
302ctxswitch-upp_thread$(EXEEXT):
[90cb6f7]303        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/ctxswitch/upp_thrd.cc
[ac93b228]304
[c12869e]305ctxswitch-python_coroutine$(EXEEXT):
[1d72a11]306        $(BENCH_V_PY)echo "#!/bin/sh" > a.out
[2c3562d]307        echo "python3 $(srcdir)/ctxswitch/python_cor.py \"$$""@\"" >> a.out
[c12869e]308        chmod a+x a.out
[90cb6f7]309
[580c11b]310ctxswitch-nodejs_coroutine$(EXEEXT):
[1d72a11]311        $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]312        echo "nodejs $(srcdir)/ctxswitch/node_cor.js \"$$""@\"" >> a.out
[4eb07bc]313        chmod a+x a.out
[580c11b]314
[7ac3151]315ctxswitch-nodejs_await$(EXEEXT):
[1d72a11]316        $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]317        echo "nodejs $(srcdir)/ctxswitch/node_await.js \"$$""@\"" >> a.out
[7ac3151]318        chmod a+x a.out
319
[c12869e]320ctxswitch-goroutine_thread$(EXEEXT):
321        $(BENCH_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
322
323ctxswitch-rust_thread$(EXEEXT):
324        $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/ctxswitch/rust_thrd.rs
325
[50abab9]326ctxswitch-java_thread$(EXEEXT):
[528ccc8]327        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
[580c11b]328        echo "#!/bin/sh" > a.out
[2c3562d]329        echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]330        chmod a+x a.out
331
[c12869e]332ctxswitch-pthread$(EXEEXT):
333        $(BENCH_V_CC)$(COMPILE) $(srcdir)/ctxswitch/pthreads.c
334
[f54a0ab]335## =========================================================================================================
[90cb6f7]336
337mutex$(EXEEXT) :                \
[f54a0ab]338        mutex-cfa1.run          \
339        mutex-cfa2.run          \
[6aa537a4]340        mutex-cfa4.run          \
[9e1fa35]341        mutex-upp.run           \
[90cb6f7]342        mutex-go.run            \
343        mutex-rust.run          \
[c12869e]344        mutex-java.run          \
345        mutex-pthread.run
[f54a0ab]346
[90cb6f7]347mutex-pthread$(EXEEXT):
[4eb07bc]348        $(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
[f54a0ab]349
350mutex-cfa1$(EXEEXT):
[4eb07bc]351        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
[f54a0ab]352
353mutex-cfa2$(EXEEXT):
[4eb07bc]354        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
[f54a0ab]355
356mutex-cfa4$(EXEEXT):
[4eb07bc]357        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
[90cb6f7]358
[9e1fa35]359mutex-upp$(EXEEXT):
360        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
361
[90cb6f7]362mutex-go$(EXEEXT):
363        $(BENCH_V_GOC)go build -o a.out $(srcdir)/mutex/goroutine.go
364
365mutex-rust$(EXEEXT):
366        $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/mutex/rust.rs
[034165a]367
[90cb6f7]368mutex-java$(EXEEXT):
[528ccc8]369        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
[580c11b]370        echo "#!/bin/sh" > a.out
[2c3562d]371        echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]372        chmod a+x a.out
[6aa537a4]373
[ce9f9d4]374## =========================================================================================================
375
[98edf2f]376mutexStmt$(EXEEXT) :                    \
377        mutexStmt-cpp1.run              \
378        mutexStmt-cpp2.run              \
379        mutexStmt-cpp4.run              \
380        mutexStmt-cpp8.run              \
381        mutexStmt-java.run              \
382        mutexStmt-lock1.run             \
383        mutexStmt-lock2.run             \
384        mutexStmt-lock4.run             \
385        mutexStmt-lock8.run             \
386        mutexStmt-no-stmt-lock1.run     \
387        mutexStmt-no-stmt-lock2.run     \
388        mutexStmt-no-stmt-lock4.run     \
389        mutexStmt-no-stmt-lock8.run     \
390        mutexStmt-monitor1.run          \
391        mutexStmt-monitor2.run          \
[65502d8]392        mutexStmt-monitor4.run
393
394mutexStmt-lock1$(EXEEXT):
395        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock1.cfa
396
397mutexStmt-lock2$(EXEEXT):
398        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock2.cfa
399
400mutexStmt-lock4$(EXEEXT):
401        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock4.cfa
402
403mutexStmt-lock8$(EXEEXT):
404        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock8.cfa
405
[ce9f9d4]406mutexStmt-cpp1$(EXEEXT):
407        $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp1.cc
408
409mutexStmt-cpp2$(EXEEXT):
410        $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp2.cc
411
412mutexStmt-cpp4$(EXEEXT):
413        $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp4.cc
414
415mutexStmt-cpp8$(EXEEXT):
416        $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp8.cc
417
[65502d8]418mutexStmt-monitor1$(EXEEXT):
419        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor1.cfa
420
421mutexStmt-monitor2$(EXEEXT):
422        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor2.cfa
423
424mutexStmt-monitor4$(EXEEXT):
425        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor4.cfa
426
427mutexStmt-no-stmt-lock1$(EXEEXT):
428        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock1.cfa
429
430mutexStmt-no-stmt-lock2$(EXEEXT):
431        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock2.cfa
432
433mutexStmt-no-stmt-lock4$(EXEEXT):
434        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock4.cfa
435
436mutexStmt-no-stmt-lock8$(EXEEXT):
437        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock8.cfa
438
[ce9f9d4]439mutexStmt-java$(EXEEXT):
440        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutexStmt/JavaThread.java
441        echo "#!/bin/sh" > a.out
442        echo "java JavaThread \"$$""@\"" >> a.out
443        chmod a+x a.out
444
[9f0b975]445## =========================================================================================================
[90cb6f7]446
[26fd986]447schedint$(EXEEXT) :             \
448        schedint-cfa1.run       \
449        schedint-cfa2.run       \
450        schedint-cfa4.run       \
451        schedint-upp.run        \
452        schedint-rust.run       \
453        schedint-java.run       \
454        schedint-pthread.run
[9f0b975]455
[26fd986]456schedint-cfa1$(EXEEXT):
[4eb07bc]457        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
[9f0b975]458
[26fd986]459schedint-cfa2$(EXEEXT):
[4eb07bc]460        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
[9f0b975]461
[26fd986]462schedint-cfa4$(EXEEXT):
[4eb07bc]463        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
[90cb6f7]464
[26fd986]465schedint-upp$(EXEEXT):
466        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
467
468schedint-rust$(EXEEXT):
[90cb6f7]469        $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/schedint/rust.rs
[9f0b975]470
[26fd986]471schedint-java$(EXEEXT):
[528ccc8]472        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
[580c11b]473        echo "#!/bin/sh" > a.out
[2c3562d]474        echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]475        chmod a+x a.out
[6aa537a4]476
[26fd986]477schedint-pthread$(EXEEXT):
478        $(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
[90cb6f7]479
[26fd986]480## =========================================================================================================
[9f0b975]481
[26fd986]482schedext$(EXEEXT) :             \
483        schedext-cfa1.run       \
484        schedext-cfa2.run       \
485        schedext-cfa4.run       \
486        schedext-upp.run        \
487        schedext-goroutine.run
[9f0b975]488
[26fd986]489schedext-cfa1$(EXEEXT):
[4eb07bc]490        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
[9f0b975]491
[26fd986]492schedext-cfa2$(EXEEXT):
[4eb07bc]493        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
[9f0b975]494
[26fd986]495schedext-cfa4$(EXEEXT):
[4eb07bc]496        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
[9f0b975]497
[26fd986]498schedext-upp$(EXEEXT):
499        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
500
501schedext-goroutine$(EXEEXT):
502        $(BENCH_V_GOC)go build -o a.out $(srcdir)/schedext/goroutine.go
503
504
[4cedd9f]505## =========================================================================================================
[90cb6f7]506
507creation$(EXEEXT) :                             \
[26fd986]508        creation-cfa_generator.run              \
[3351cc0]509        creation-cfa_coroutine.run              \
510        creation-cfa_coroutine_eager.run        \
511        creation-cfa_thread.run                 \
512        creation-upp_coroutine.run              \
[50abab9]513        creation-upp_thread.run                 \
[c12869e]514        creation-python_coroutine.run           \
[9e1fa35]515        creation-nodejs_coroutine.run           \
[c12869e]516        creation-goroutine_thread.run           \
517        creation-rust_thread.run                \
518        creation-java_thread.run                \
519        creation-pthread.run
[4cedd9f]520
[26fd986]521creation-cfa_generator$(EXEEXT):
522        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_gen.cfa
523
[4cedd9f]524creation-cfa_coroutine$(EXEEXT):
[4eb07bc]525        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
[4cedd9f]526
[3351cc0]527creation-cfa_coroutine_eager$(EXEEXT):
[4eb07bc]528        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa  -DEAGER
[3351cc0]529
[4cedd9f]530creation-cfa_thread$(EXEEXT):
[4eb07bc]531        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
[4cedd9f]532
533creation-upp_coroutine$(EXEEXT):
[4eb07bc]534        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
[4cedd9f]535
536creation-upp_thread$(EXEEXT):
[4eb07bc]537        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
[4cedd9f]538
[c12869e]539creation-python_coroutine$(EXEEXT):
[1d72a11]540        $(BENCH_V_PY)echo "#!/bin/sh" > a.out
[2c3562d]541        echo "python3 $(srcdir)/creation/python_cor.py \"$$""@\"" >> a.out
[c12869e]542        chmod a+x a.out
[90cb6f7]543
[9e1fa35]544creation-nodejs_coroutine$(EXEEXT):
[1d72a11]545        $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]546        echo "nodejs $(srcdir)/creation/node_cor.js \"$$""@\"" >> a.out
[9e1fa35]547        chmod a+x a.out
548
[c12869e]549creation-goroutine_thread$(EXEEXT):
550        $(BENCH_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
551
552creation-rust_thread$(EXEEXT):
553        $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/creation/rust_thrd.rs
554
[26fd986]555creation-java_thread$(EXEEXT):
[528ccc8]556        $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
[580c11b]557        echo "#!/bin/sh" > a.out
[2c3562d]558        echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]559        chmod a+x a.out
[50abab9]560
[c12869e]561creation-pthread$(EXEEXT):
562        $(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
563
[034165a]564## =========================================================================================================
565
[c2bc6d5]566bcompile$(EXEEXT) :             \
[a5b7905]567        compile-array.make      \
568        compile-attributes.make \
[98edf2f]569        compile-empty.make      \
[a5b7905]570        compile-expression.make \
571        compile-io.make         \
572        compile-monitor.make    \
573        compile-operators.make  \
574        compile-typeof.make
[3edc2df]575
[524ed86]576testdir = $(top_srcdir)/tests
[d3db83c]577
[3edc2df]578compile-array$(EXEEXT):
[6ca0dab]579        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/array.cfa
[3edc2df]580
581compile-attributes$(EXEEXT):
[6ca0dab]582        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/attributes.cfa
[3edc2df]583
584compile-empty$(EXEEXT):
[6ca0dab]585        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(srcdir)/compile/empty.cfa
[3edc2df]586
587compile-expression$(EXEEXT):
[6ca0dab]588        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/expression.cfa
[3edc2df]589
590compile-io$(EXEEXT):
[1d6ff91]591        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/io/io.cfa
[3edc2df]592
593compile-monitor$(EXEEXT):
[98edf2f]594        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/monitor.cfa
[3edc2df]595
596compile-operators$(EXEEXT):
[6ca0dab]597        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/operators.cfa
[3edc2df]598
599compile-thread$(EXEEXT):
[98edf2f]600        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/thread.cfa
[3edc2df]601
602compile-typeof$(EXEEXT):
[6ca0dab]603        $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/typeof.cfa
[e15683e]604
605## =========================================================================================================
606
607size$(EXEEXT) : size-cfa.runquiet
608
609size-cfa$(EXEEXT):
610        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/size/size.cfa
[49ce636]611
612## =========================================================================================================
613
[dd1cc02]614RDQBENCHES = \
[3df86cc]615        rdq-churn-cfa \
[b029e31]616        rdq-churn-tokio \
617        rdq-churn-go \
618        rdq-churn-fibre \
[dd1cc02]619        rdq-cycle-cfa \
620        rdq-cycle-tokio \
621        rdq-cycle-go \
622        rdq-cycle-fibre \
623        rdq-yield-cfa \
624        rdq-yield-tokio \
625        rdq-yield-go \
626        rdq-yield-fibre \
627        rdq-locality-cfa \
628        rdq-locality-tokio \
629        rdq-locality-go \
630        rdq-locality-fibre \
[821c534]631        rdq-transfer-cfa \
[0218d51]632        rdq-transfer-tokio \
633        rdq-transfer-go \
634        rdq-transfer-fibre
[dd1cc02]635
636rdq-benches:
637        +make $(RDQBENCHES)
638
639clean-rdq-benches:
[ebb6158]640        rm -rf $(RDQBENCHES) $(builddir)/target go.mod
[dd1cc02]641
[ebb6158]642rdq-%-tokio$(EXEEXT): $(builddir)/target/release/rdq-%-tokio$(EXEEXT)
643        $(BENCH_V_RUSTC)cp $(builddir)/target/release/$(basename $@) $@
644
645$(builddir)/target/release/rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
646        $(BENCH_V_RUSTC)cd $(builddir) && cargo build --release
[dd1cc02]647
648rdq-%-cfa$(EXEEXT): $(srcdir)/readyQ/%.cfa $(srcdir)/readyQ/rq_bench.hfa
649        $(BENCH_V_CFA)$(CFACOMPILE) $< -o $@
650
651go.mod:
652        touch $@
[ebb6158]653        go mod edit -module=rdq.bench
[dd1cc02]654        go get golang.org/x/sync/semaphore
655        go get golang.org/x/text/language
656        go get golang.org/x/text/message
657
658rdq-%-go$(EXEEXT): $(srcdir)/readyQ/%.go $(srcdir)/readyQ/bench.go go.mod
659        $(BENCH_V_GOC)go build -o $@ $< $(srcdir)/readyQ/bench.go
660
661rdq-%-fibre$(EXEEXT): $(srcdir)/readyQ/%.cpp
[fdfb0ba]662        $(BENCH_V_CXX)$(CXXCOMPILE) $< -o $@ -lfibre -std=c++17 $(AM_CFLAGS)
[dd1cc02]663
664# ## =========================================================================================================
665
666CLEANFILES = $(RDQBENCHES) go.mod go.sum
667
668clean-local:
[98edf2f]669        -rm -rf target
Note: See TracBrowser for help on using the repository browser.