source: benchmark/Makefile.am @ 5a02308

Last change on this file since 5a02308 was b05d79d, checked in by Michael Brooks <mlbrooks@…>, 3 months ago

Try to get full build completing by disabling a data-collection substep.

In benchmarks/compile.csv, column 'attributes' is now showing hardcoded zero.

Also, add log comment to ease similar troubleshooting in the future.

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