source: benchmark/Makefile.am@ 161b98e

Last change on this file since 161b98e was 3df3a8f, checked in by Michael Brooks <mlbrooks@…>, 9 months ago

Add back overnight build's benchmark compile attribute data point

  • Property mode set to 100644
File size: 20.5 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
[b05d79d]150 @echo 'If making benchmarks fails, look for error detail hiding in benchmark/foo.csv, where the last logged message is, "building foo.csv."'
[05f4b85]151@DOifskipcompile@
[b2525d9]152 @+make --silent compile.csv
153 @-+make --silent compile.diff.csv
[05f4b85]154@DOendif@
[b2525d9]155 @+make --silent ctxswitch.csv
156 @-+make --silent ctxswitch.diff.csv
157 @+make --silent mutex.csv
158 @-+make --silent mutex.diff.csv
159 @+make --silent schedint.csv
160 @-+make --silent schedint.diff.csv
[d9f2874]161@DOifskipcompile@
[c6f1f3e]162 cat compile.csv
163 -cat compile.diff.csv
[d9f2874]164@DOendif@
[c6f1f3e]165 cat ctxswitch.csv
166 -cat ctxswitch.diff.csv
167 cat mutex.csv
168 -cat mutex.diff.csv
[6ca0dab]169 cat schedint.csv
170 -cat schedint.diff.csv
[f15fe0a]171
172compile.csv:
[4aac9ff]173 echo "building $@"
[580c11b]174 echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
175 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
[3df3a8f]176 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
[580c11b]177 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
178 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
179 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
180 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
181 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
182 +make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
183 $(srcdir)/fixcsv.sh $@
[f15fe0a]184
185ctxswitch.csv:
[4aac9ff]186 echo "building $@"
[580c11b]187 echo "generator,coroutine,thread" > $@
188 +make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
189 +make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
190 +make ctxswitch-cfa_thread.runquiet >> $@
191 $(srcdir)/fixcsv.sh $@
[f15fe0a]192
193mutex.csv:
[4aac9ff]194 echo "building $@"
[580c11b]195 echo "1-monitor,2-monitor" > $@
196 +make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
197 +make mutex-cfa2.runquiet >> $@
198 $(srcdir)/fixcsv.sh $@
[f15fe0a]199
[65502d8]200# use --no-print-directory to generate csv appropriately
201mutexStmt.csv:
202 echo "building $@"
203 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" > $@
204 +make mutexStmt-lock1.runquiet >> $@ && echo -n ',' >> $@
205 +make mutexStmt-lock2.runquiet >> $@ && echo -n ',' >> $@
206 +make mutexStmt-lock4.runquiet >> $@ && echo -n ',' >> $@
207 +make mutexStmt-lock8.runquiet >> $@ && echo -n ',' >> $@
208 +make mutexStmt-no-stmt-lock1.runquiet >> $@ && echo -n ',' >> $@
209 +make mutexStmt-no-stmt-lock2.runquiet >> $@ && echo -n ',' >> $@
210 +make mutexStmt-no-stmt-lock4.runquiet >> $@ && echo -n ',' >> $@
211 +make mutexStmt-no-stmt-lock8.runquiet >> $@ && echo -n ',' >> $@
212 +make mutexStmt-monitor1.runquiet >> $@ && echo -n ',' >> $@
213 +make mutexStmt-monitor2.runquiet >> $@ && echo -n ',' >> $@
214 +make mutexStmt-monitor4.runquiet >> $@
215 $(srcdir)/fixcsv.sh $@
216
[6ca0dab]217schedint.csv:
[4aac9ff]218 echo "building $@"
[26fd986]219 echo "schedint-1,schedint-2,schedext-1,schedext-2" > $@
220 +make schedint-cfa1.runquiet >> $@ && echo -n ',' >> $@
221 +make schedint-cfa2.runquiet >> $@ && echo -n ',' >> $@
222 +make schedext-cfa1.runquiet >> $@ && echo -n ',' >> $@
223 +make schedext-cfa2.runquiet >> $@
[580c11b]224 $(srcdir)/fixcsv.sh $@
[ac93b228]225
[c6f1f3e]226%.diff.csv: %.csv
[580c11b]227 test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
228 $(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
[c6f1f3e]229
[d885a58]230## =========================================================================================================
231
[4eb07bc]232BASIC_DEPEND = \
233 basic-loop.run \
[90cb6f7]234 basic-function.run \
235 basic-fetch_add.run \
236 basic-ttst_lock.run \
237 basic-tls-fetch_add.run
238
239basic-loop$(EXEEXT):
240 $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/loop.c
241
242basic-function$(EXEEXT):
243 $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/function.c
244
245basic-fetch_add$(EXEEXT):
246 $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/fetch_add.c
247
248basic-ttst_lock$(EXEEXT):
249 $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/ttst_lock.c
250
251basic-tls-fetch_add$(EXEEXT):
252 $(BENCH_V_CC)$(COMPILE) $(srcdir)/basic/tls_fetch_add.c
[d885a58]253
[90cb6f7]254basic$(EXEEXT): $(BASIC_DEPEND)
[d885a58]255
[034165a]256## =========================================================================================================
[90cb6f7]257
258CTXSWITCH_DEPEND = \
[dc33b5b]259 ctxswitch-cfa_generator.run \
[b7170a64]260 ctxswitch-cfa_coroutine.run \
261 ctxswitch-cfa_thread.run \
[6810fcb]262 ctxswitch-cfa_thread2.run \
[b7170a64]263 ctxswitch-upp_coroutine.run \
[50abab9]264 ctxswitch-upp_thread.run \
[c12869e]265 ctxswitch-python_coroutine.run \
266 ctxswitch-nodejs_coroutine.run \
[7ac3151]267 ctxswitch-nodejs_await.run \
[c12869e]268 ctxswitch-goroutine_thread.run \
[90cb6f7]269 ctxswitch-rust_thread.run \
[580c11b]270 ctxswitch-nodejs_coroutine.run \
[c12869e]271 ctxswitch-java_thread.run \
272 ctxswitch-pthread.run
[dc33b5b]273
[41cca44]274if WITH_LIBFIBRE
[90cb6f7]275CTXSWITCH_DEPEND += \
276 ctxswitch-kos_fibre.run \
[41cca44]277 ctxswitch-kos_fibre2.run
278
279ctxswitch-kos_fibre$(EXEEXT):
[528ccc8]280 $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp -I$(LIBFIBRE_DIR) -lfibre
[41cca44]281
282ctxswitch-kos_fibre2$(EXEEXT):
[528ccc8]283 $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
[41cca44]284endif
285
286ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
287
[dc33b5b]288ctxswitch-cfa_generator$(EXEEXT):
[90cb6f7]289 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_gen.cfa
[dc33b5b]290
[034165a]291ctxswitch-cfa_coroutine$(EXEEXT):
[90cb6f7]292 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_cor.cfa
[034165a]293
294ctxswitch-cfa_thread$(EXEEXT):
[90cb6f7]295 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_thrd.cfa
[6810fcb]296
297ctxswitch-cfa_thread2$(EXEEXT):
[90cb6f7]298 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/ctxswitch/cfa_thrd2.cfa
[034165a]299
300ctxswitch-upp_coroutine$(EXEEXT):
[90cb6f7]301 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/ctxswitch/upp_cor.cc
[034165a]302
303ctxswitch-upp_thread$(EXEEXT):
[90cb6f7]304 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/ctxswitch/upp_thrd.cc
[ac93b228]305
[c12869e]306ctxswitch-python_coroutine$(EXEEXT):
[1d72a11]307 $(BENCH_V_PY)echo "#!/bin/sh" > a.out
[2c3562d]308 echo "python3 $(srcdir)/ctxswitch/python_cor.py \"$$""@\"" >> a.out
[c12869e]309 chmod a+x a.out
[90cb6f7]310
[580c11b]311ctxswitch-nodejs_coroutine$(EXEEXT):
[1d72a11]312 $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]313 echo "nodejs $(srcdir)/ctxswitch/node_cor.js \"$$""@\"" >> a.out
[4eb07bc]314 chmod a+x a.out
[580c11b]315
[7ac3151]316ctxswitch-nodejs_await$(EXEEXT):
[1d72a11]317 $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]318 echo "nodejs $(srcdir)/ctxswitch/node_await.js \"$$""@\"" >> a.out
[7ac3151]319 chmod a+x a.out
320
[c12869e]321ctxswitch-goroutine_thread$(EXEEXT):
322 $(BENCH_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
323
324ctxswitch-rust_thread$(EXEEXT):
325 $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/ctxswitch/rust_thrd.rs
326
[50abab9]327ctxswitch-java_thread$(EXEEXT):
[528ccc8]328 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
[580c11b]329 echo "#!/bin/sh" > a.out
[2c3562d]330 echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]331 chmod a+x a.out
332
[c12869e]333ctxswitch-pthread$(EXEEXT):
334 $(BENCH_V_CC)$(COMPILE) $(srcdir)/ctxswitch/pthreads.c
335
[f54a0ab]336## =========================================================================================================
[90cb6f7]337
338mutex$(EXEEXT) : \
[f54a0ab]339 mutex-cfa1.run \
340 mutex-cfa2.run \
[6aa537a4]341 mutex-cfa4.run \
[9e1fa35]342 mutex-upp.run \
[90cb6f7]343 mutex-go.run \
344 mutex-rust.run \
[c12869e]345 mutex-java.run \
346 mutex-pthread.run
[f54a0ab]347
[90cb6f7]348mutex-pthread$(EXEEXT):
[4eb07bc]349 $(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
[f54a0ab]350
351mutex-cfa1$(EXEEXT):
[4eb07bc]352 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
[f54a0ab]353
354mutex-cfa2$(EXEEXT):
[4eb07bc]355 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
[f54a0ab]356
357mutex-cfa4$(EXEEXT):
[4eb07bc]358 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
[90cb6f7]359
[9e1fa35]360mutex-upp$(EXEEXT):
361 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
362
[90cb6f7]363mutex-go$(EXEEXT):
364 $(BENCH_V_GOC)go build -o a.out $(srcdir)/mutex/goroutine.go
365
366mutex-rust$(EXEEXT):
367 $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/mutex/rust.rs
[034165a]368
[90cb6f7]369mutex-java$(EXEEXT):
[528ccc8]370 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
[580c11b]371 echo "#!/bin/sh" > a.out
[2c3562d]372 echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]373 chmod a+x a.out
[6aa537a4]374
[ce9f9d4]375## =========================================================================================================
376
[98edf2f]377mutexStmt$(EXEEXT) : \
378 mutexStmt-cpp1.run \
379 mutexStmt-cpp2.run \
380 mutexStmt-cpp4.run \
381 mutexStmt-cpp8.run \
382 mutexStmt-java.run \
383 mutexStmt-lock1.run \
384 mutexStmt-lock2.run \
385 mutexStmt-lock4.run \
386 mutexStmt-lock8.run \
387 mutexStmt-no-stmt-lock1.run \
388 mutexStmt-no-stmt-lock2.run \
389 mutexStmt-no-stmt-lock4.run \
390 mutexStmt-no-stmt-lock8.run \
391 mutexStmt-monitor1.run \
392 mutexStmt-monitor2.run \
[65502d8]393 mutexStmt-monitor4.run
394
395mutexStmt-lock1$(EXEEXT):
396 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock1.cfa
397
398mutexStmt-lock2$(EXEEXT):
399 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock2.cfa
400
401mutexStmt-lock4$(EXEEXT):
402 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock4.cfa
403
404mutexStmt-lock8$(EXEEXT):
405 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock8.cfa
406
[ce9f9d4]407mutexStmt-cpp1$(EXEEXT):
408 $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp1.cc
409
410mutexStmt-cpp2$(EXEEXT):
411 $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp2.cc
412
413mutexStmt-cpp4$(EXEEXT):
414 $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp4.cc
415
416mutexStmt-cpp8$(EXEEXT):
417 $(BENCH_V_CXX)$(CXXCOMPILE) -std=c++17 $(srcdir)/mutexStmt/cpp8.cc
418
[65502d8]419mutexStmt-monitor1$(EXEEXT):
420 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor1.cfa
421
422mutexStmt-monitor2$(EXEEXT):
423 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor2.cfa
424
425mutexStmt-monitor4$(EXEEXT):
426 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor4.cfa
427
428mutexStmt-no-stmt-lock1$(EXEEXT):
429 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock1.cfa
430
431mutexStmt-no-stmt-lock2$(EXEEXT):
432 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock2.cfa
433
434mutexStmt-no-stmt-lock4$(EXEEXT):
435 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock4.cfa
436
437mutexStmt-no-stmt-lock8$(EXEEXT):
438 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock8.cfa
439
[ce9f9d4]440mutexStmt-java$(EXEEXT):
441 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutexStmt/JavaThread.java
442 echo "#!/bin/sh" > a.out
443 echo "java JavaThread \"$$""@\"" >> a.out
444 chmod a+x a.out
445
[9f0b975]446## =========================================================================================================
[90cb6f7]447
[26fd986]448schedint$(EXEEXT) : \
449 schedint-cfa1.run \
450 schedint-cfa2.run \
451 schedint-cfa4.run \
452 schedint-upp.run \
453 schedint-rust.run \
454 schedint-java.run \
455 schedint-pthread.run
[9f0b975]456
[26fd986]457schedint-cfa1$(EXEEXT):
[4eb07bc]458 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
[9f0b975]459
[26fd986]460schedint-cfa2$(EXEEXT):
[4eb07bc]461 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
[9f0b975]462
[26fd986]463schedint-cfa4$(EXEEXT):
[4eb07bc]464 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
[90cb6f7]465
[26fd986]466schedint-upp$(EXEEXT):
467 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
468
469schedint-rust$(EXEEXT):
[90cb6f7]470 $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/schedint/rust.rs
[9f0b975]471
[26fd986]472schedint-java$(EXEEXT):
[528ccc8]473 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
[580c11b]474 echo "#!/bin/sh" > a.out
[2c3562d]475 echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]476 chmod a+x a.out
[6aa537a4]477
[26fd986]478schedint-pthread$(EXEEXT):
479 $(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
[90cb6f7]480
[26fd986]481## =========================================================================================================
[9f0b975]482
[26fd986]483schedext$(EXEEXT) : \
484 schedext-cfa1.run \
485 schedext-cfa2.run \
486 schedext-cfa4.run \
487 schedext-upp.run \
488 schedext-goroutine.run
[9f0b975]489
[26fd986]490schedext-cfa1$(EXEEXT):
[4eb07bc]491 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
[9f0b975]492
[26fd986]493schedext-cfa2$(EXEEXT):
[4eb07bc]494 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
[9f0b975]495
[26fd986]496schedext-cfa4$(EXEEXT):
[4eb07bc]497 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
[9f0b975]498
[26fd986]499schedext-upp$(EXEEXT):
500 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
501
502schedext-goroutine$(EXEEXT):
503 $(BENCH_V_GOC)go build -o a.out $(srcdir)/schedext/goroutine.go
504
505
[4cedd9f]506## =========================================================================================================
[90cb6f7]507
508creation$(EXEEXT) : \
[26fd986]509 creation-cfa_generator.run \
[3351cc0]510 creation-cfa_coroutine.run \
511 creation-cfa_coroutine_eager.run \
512 creation-cfa_thread.run \
513 creation-upp_coroutine.run \
[50abab9]514 creation-upp_thread.run \
[c12869e]515 creation-python_coroutine.run \
[9e1fa35]516 creation-nodejs_coroutine.run \
[c12869e]517 creation-goroutine_thread.run \
518 creation-rust_thread.run \
519 creation-java_thread.run \
520 creation-pthread.run
[4cedd9f]521
[26fd986]522creation-cfa_generator$(EXEEXT):
523 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_gen.cfa
524
[4cedd9f]525creation-cfa_coroutine$(EXEEXT):
[4eb07bc]526 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
[4cedd9f]527
[3351cc0]528creation-cfa_coroutine_eager$(EXEEXT):
[4eb07bc]529 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa -DEAGER
[3351cc0]530
[4cedd9f]531creation-cfa_thread$(EXEEXT):
[4eb07bc]532 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
[4cedd9f]533
534creation-upp_coroutine$(EXEEXT):
[4eb07bc]535 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
[4cedd9f]536
537creation-upp_thread$(EXEEXT):
[4eb07bc]538 $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
[4cedd9f]539
[c12869e]540creation-python_coroutine$(EXEEXT):
[1d72a11]541 $(BENCH_V_PY)echo "#!/bin/sh" > a.out
[2c3562d]542 echo "python3 $(srcdir)/creation/python_cor.py \"$$""@\"" >> a.out
[c12869e]543 chmod a+x a.out
[90cb6f7]544
[9e1fa35]545creation-nodejs_coroutine$(EXEEXT):
[1d72a11]546 $(BENCH_V_NODEJS)echo "#!/bin/sh" > a.out
[2c3562d]547 echo "nodejs $(srcdir)/creation/node_cor.js \"$$""@\"" >> a.out
[9e1fa35]548 chmod a+x a.out
549
[c12869e]550creation-goroutine_thread$(EXEEXT):
551 $(BENCH_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
552
553creation-rust_thread$(EXEEXT):
554 $(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/creation/rust_thrd.rs
555
[26fd986]556creation-java_thread$(EXEEXT):
[528ccc8]557 $(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
[580c11b]558 echo "#!/bin/sh" > a.out
[2c3562d]559 echo "java JavaThread \"$$""@\"" >> a.out
[580c11b]560 chmod a+x a.out
[50abab9]561
[c12869e]562creation-pthread$(EXEEXT):
563 $(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
564
[034165a]565## =========================================================================================================
566
[c2bc6d5]567bcompile$(EXEEXT) : \
[a5b7905]568 compile-array.make \
569 compile-attributes.make \
[98edf2f]570 compile-empty.make \
[a5b7905]571 compile-expression.make \
572 compile-io.make \
573 compile-monitor.make \
574 compile-operators.make \
575 compile-typeof.make
[3edc2df]576
[524ed86]577testdir = $(top_srcdir)/tests
[d3db83c]578
[3edc2df]579compile-array$(EXEEXT):
[6ca0dab]580 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/array.cfa
[3edc2df]581
582compile-attributes$(EXEEXT):
[6ca0dab]583 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/attributes.cfa
[3edc2df]584
585compile-empty$(EXEEXT):
[6ca0dab]586 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(srcdir)/compile/empty.cfa
[3edc2df]587
588compile-expression$(EXEEXT):
[6ca0dab]589 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/expression.cfa
[3edc2df]590
591compile-io$(EXEEXT):
[1d6ff91]592 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/io/io.cfa
[3edc2df]593
594compile-monitor$(EXEEXT):
[98edf2f]595 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/monitor.cfa
[3edc2df]596
597compile-operators$(EXEEXT):
[6ca0dab]598 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/operators.cfa
[3edc2df]599
600compile-thread$(EXEEXT):
[98edf2f]601 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/concurrency/thread.cfa
[3edc2df]602
603compile-typeof$(EXEEXT):
[6ca0dab]604 $(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/typeof.cfa
[e15683e]605
606## =========================================================================================================
607
608size$(EXEEXT) : size-cfa.runquiet
609
610size-cfa$(EXEEXT):
611 $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/size/size.cfa
[49ce636]612
613## =========================================================================================================
614
[dd1cc02]615RDQBENCHES = \
[3df86cc]616 rdq-churn-cfa \
[b029e310]617 rdq-churn-tokio \
618 rdq-churn-go \
619 rdq-churn-fibre \
[dd1cc02]620 rdq-cycle-cfa \
621 rdq-cycle-tokio \
622 rdq-cycle-go \
623 rdq-cycle-fibre \
624 rdq-yield-cfa \
625 rdq-yield-tokio \
626 rdq-yield-go \
627 rdq-yield-fibre \
628 rdq-locality-cfa \
629 rdq-locality-tokio \
630 rdq-locality-go \
631 rdq-locality-fibre \
[821c534]632 rdq-transfer-cfa \
[0218d51]633 rdq-transfer-tokio \
634 rdq-transfer-go \
635 rdq-transfer-fibre
[dd1cc02]636
637rdq-benches:
638 +make $(RDQBENCHES)
639
640clean-rdq-benches:
[ebb6158]641 rm -rf $(RDQBENCHES) $(builddir)/target go.mod
[dd1cc02]642
[ebb6158]643rdq-%-tokio$(EXEEXT): $(builddir)/target/release/rdq-%-tokio$(EXEEXT)
644 $(BENCH_V_RUSTC)cp $(builddir)/target/release/$(basename $@) $@
645
646$(builddir)/target/release/rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
647 $(BENCH_V_RUSTC)cd $(builddir) && cargo build --release
[dd1cc02]648
649rdq-%-cfa$(EXEEXT): $(srcdir)/readyQ/%.cfa $(srcdir)/readyQ/rq_bench.hfa
650 $(BENCH_V_CFA)$(CFACOMPILE) $< -o $@
651
652go.mod:
653 touch $@
[ebb6158]654 go mod edit -module=rdq.bench
[dd1cc02]655 go get golang.org/x/sync/semaphore
656 go get golang.org/x/text/language
657 go get golang.org/x/text/message
658
659rdq-%-go$(EXEEXT): $(srcdir)/readyQ/%.go $(srcdir)/readyQ/bench.go go.mod
660 $(BENCH_V_GOC)go build -o $@ $< $(srcdir)/readyQ/bench.go
661
662rdq-%-fibre$(EXEEXT): $(srcdir)/readyQ/%.cpp
[fdfb0ba]663 $(BENCH_V_CXX)$(CXXCOMPILE) $< -o $@ -lfibre -std=c++17 $(AM_CFLAGS)
[dd1cc02]664
665# ## =========================================================================================================
666
667CLEANFILES = $(RDQBENCHES) go.mod go.sum
668
669clean-local:
[98edf2f]670 -rm -rf target
Note: See TracBrowser for help on using the repository browser.