source: doc/theses/mike_brooks_MMath/benchmarks/list/Makefile

Last change on this file was 6c58850, checked in by Michael Brooks <mlbrooks@…>, 6 weeks ago

Revise data in linked-list plots with streamlined harness and data from runs on swift.

No change to text discussing the plots, so some of that discussion is now stale.

Harness changes allow more ifdef feature disabling and eliminate side-array usage, keeping all per-node harness state inside the list nodes.

Completely disable the interleaving experiment, which was not giving discernable data.

  • Property mode set to 100644
File size: 16.4 KB
Line 
1# For correctness, see test-correctness.sh.
2# For performance, example:
3# pushd ~/cfax
4# . ~/setcfa build-fast
5# popd
6# make perfprogs CFA=$cfa -j8 MODE=performance
7# make results-latest.csv RUN_DURATION_SEC=5 RUN_NUM_REPS=5 RUN_DATA_SIZE_MODE=common5
8# cp results-latest.csv results-baseline.csv
9# For performance, see also: `results-smoketest.csv`, `make thesis`, and more such applied targets at the end
10
11CFA ?= cfa
12CC ?= gcc-11
13CXX ?= g++-11
14UXX ?= ~/u++/u++-7.0.0/bin/u++
15
16MODE?=performance
17EXTRA_COMP_FLAGS?=
18RUN_NUM_REPS?=3
19RUN_DATA_SIZE_MODE?=none
20RUN_DURATION_SEC?=5
21RUN_TASKSET_CPULIST?=6
22
23LLHEAP_LIB=../llheap/libllheap.so
24
25ifeq "$(MODE)" "performance"
26PERFFLAGS_CFA = -DNDEBUG -O3 -nodebug
27PERFFLAGS_CC = -DNDEBUG -O3
28else ifeq "$(MODE)" "correctness"
29PERFFLAGS_CFA = -O0 -g -nodebug -D__CFA_DEBUG__ # shortcut for not also building debug cfa
30PERFFLAGS_CC = -O0 -g
31else
32$(error Bad MODE ($(MODE)); should be performance or correctness)
33endif
34
35PERFFLAGS_CXX = $(PERFFLAGS_CC)
36PERFFLAGS_UXX = $(PERFFLAGS_CFA)
37
38CFLAGS=$(PERFFLAGS_CC) $(EXTRA_COMP_FLAGS)
39
40SHELL = /usr/bin/bash
41
42# function: project an element from a filename that contains a delimited tuple
43# (call proj,-,a-b-c.hfa,3)
44# is
45# c
46define proj
47$(word $(3),$(subst $(1), ,$(basename $(2))))
48endef
49
50# functions: cross two lists, adding given delimiter between
51# (call cross,-,a b c,1 2)
52# is
53# a-1 a-2 b-1 b-2 c-1 c-2
54define cross
55$(foreach x,$(2),$(foreach xs,$(3),$(x)$(1)$(xs)))
56endef
57define cross3
58$(call cross,$(1),$(2),$(call cross,$(1),$(3),$(4)))
59endef
60define cross4
61$(call cross,$(1),$(2),$(call cross3,$(1),$(3),$(4),$(5)))
62endef
63define cross5
64$(call cross,$(1),$(2),$(call cross4,$(1),$(3),$(4),$(5),$(6)))
65endef
66
67OP_MOVEMENTS?=stack queue
68OP_POLARITIES?=insfirst inslast
69OP_ACCESSORS?=allhead inselem remelem
70RUN_INTERLEAVE_PCTS?=0
71
72
73FX_SOLUTIONS?=lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref
74
75OPS=$(call cross3,-,$(OP_MOVEMENTS),$(OP_POLARITIES),$(OP_ACCESSORS))
76FXS=$(FX_SOLUTIONS)
77
78all : perfprogs results-latest.csv
79
80# Want to add functional dependency:
81# if current FX_SOLUTION is lq-list then
82# current OP_MOVEMENT must be stack and
83# current OP_POLARITY must be insfirst
84LQ_LIST_INCOMPAT_OP_MOVEMENTS=$(filter-out stack,$(OP_MOVEMENTS))
85LQ_LIST_INCOMPAT_OP_POLARITIES=$(filter-out insfirst,$(OP_POLARITIES))
86LQ_LIST_INCOMPAT_OPS=$(call cross3,-,$(LQ_LIST_INCOMPAT_OP_MOVEMENTS),$(OP_POLARITIES),$(OP_ACCESSORS)) \
87 $(call cross3,-,$(OP_MOVEMENTS),$(LQ_LIST_INCOMPAT_OP_POLARITIES),$(OP_ACCESSORS))
88INCOMPAT=$(call cross,--,lq-list,$(LQ_LIST_INCOMPAT_OPS))
89define filterFds
90$(filter-out $(INCOMPAT),$(1))
91endef
92
93
94CORES_FULL=$(call cross,--,$(FXS),$(OPS)) # lq-tailq--stack-inslast-allhead
95CORES=$(call filterFds,$(CORES_FULL)) # lq-tailq--stack-inslast-allhead
96
97.SECONDEXPANSION: # allow $$ expansion for dynamic dependencies
98
99
100PERFPROGS=$(call cross,--,perfexp,$(CORES))
101
102perfprogs : $(PERFPROGS)
103
104perfexp--% driver--%.o result--%.1csv : FX=$(call proj,--,$@,2)
105perfexp--% driver--%.o result--%.1csv : FX_COARSE=$(call proj,-,$(FX),1)
106perfexp--% driver--%.o result--%.1csv : OP=$(call proj,--,$@,3)
107perfexp--% driver--%.o result--%.1csv : OP_MOVEMENT=$(call proj,-,$(OP),1)
108perfexp--% driver--%.o result--%.1csv : OP_POLARITY=$(call proj,-,$(OP),2)
109perfexp--% driver--%.o result--%.1csv : OP_ACCESSOR=$(call proj,-,$(OP),3)
110perfexp--% driver--%.o result--%.1csv : OP_DEFINES=-DOP_MOVEMENT=$(OP_MOVEMENT) -DOP_POLARITY=$(OP_POLARITY) -DOP_ACCESSOR=$(OP_ACCESSOR)
111
112perfexp--cfa-% driver--cfa-%.o : COMPILER=$(CFA) $(PERFFLAGS_CFA)
113perfexp--lq-% driver--lq-%.o : COMPILER=$(CC) $(PERFFLAGS_CC)
114perfexp--cpp-% driver--cpp-%.o : COMPILER=$(CXX) $(PERFFLAGS_CXX)
115perfexp--upp-% driver--upp-%.o : COMPILER=$(UXX) $(PERFFLAGS_UXX)
116perfexp--% driver--%.o : COMPILER=NO-COMPILER-FOR-$(FX_COARSE)
117
118USE_LLHEAP=no
119perfexp--cpp-% driver--cpp-%.o : USE_LLHEAP=yes
120perfexp--cpp-%AllocGlib driver--cpp-%AllocGlib.o : USE_LLHEAP=no
121
122LLHEAP_LIB_COND=$(if $(filter $(USE_LLHEAP),yes),$(LLHEAP_LIB))
123LLHEAP_PRELOAD_COND=$(if $(filter $(USE_LLHEAP),yes),LD_PRELOAD=$(LLHEAP_LIB))
124
125$(dir $(LLHEAP_LIB)) :
126 $(error Manual action required: clone llheap into $@)
127
128$(LLHEAP_LIB) : $$(dir $$@)
129 $(MAKE) -C $< $(notdir $@)
130
131# Without this %.d rule, ordinary make runs have noise about the recipe for driver--%.o being ill-formed when called on a *.d.
132# https://stackoverflow.com/questions/3714041/why-does-this-makefile-execute-a-target-on-make-clean
133# Whatever you -include gets called as a target first.
134# One such example is driver--upp-upp--stack-insfirst-allhead.d
135# Without this %.d rule, `make make driver--upp-upp--stack-insfirst-allhead.d` leads to the rule for driver--%.o firing.
136# Though my dumb human eyes don't see the pattern as matching.
137%.d:
138 @touch $@
139
140ifeq "$(MAKE_DISABLE_OBSERVATION)" "yes"
141OBSERVATION_COMP_FLAG= -DDISABLE_OBSERVATION
142OBSERVATION_OBJ_COND=
143else
144OBSERVATION_COMP_FLAG=
145OBSERVATION_OBJ_COND= observation.o
146endif
147
148perfexp--% : $$(LLHEAP_LIB_COND) driver--%.o $(OBSERVATION_OBJ_COND)
149 $(COMPILER) $(EXTRA_COMP_FLAGS) $^ -o $@
150
151driver--%.o : driver.c
152 $(COMPILER) $(EXTRA_COMP_FLAGS) $(OBSERVATION_COMP_FLAG) -c $< $(OP_DEFINES) -include op-$(OP).h -include fx-$(FX).h -o $@ -MMD
153
154
155# troubleshooting, e.g. `make echo_DEMOS` runs `echo $(DEMOS)`
156echo_% :
157 @echo '$($(@:echo_%=%))'
158
159
160ifeq "$(RUN_DATA_SIZE_MODE)" "manual"
161 ifeq "$(RUN_DATA_SIZES)" ""
162 $(error RUN_DATA_SIZE_MODE is manual but RUN_DATA_SIZES not given)
163 endif
164endif
165
166RUN_DATA_SIZES = \
167$(if $(filter $(RUN_DATA_SIZE_MODE),common5), \
168 7-1000000 \
169 71-100000 \
170 809-10000 \
171 9051-1000 \
172 72421-100 \
173, $(if $(filter $(RUN_DATA_SIZE_MODE),thorough), \
174 1-1000000 \
175 2-1000000 \
176 3-1000000 \
177 5-1000000 \
178 7-1000000 \
179 11-100000 \
180 13-100000 \
181 19-100000 \
182 29-100000 \
183 37-100000 \
184 53-100000 \
185 71-100000 \
186 101-10000 \
187 149-10000 \
188 211-10000 \
189 283-10000 \
190 401-10000 \
191 569-10000 \
192 809-10000 \
193 1151-1000 \
194 1601-1000 \
195 2267-1000 \
196 3203-1000 \
197 4547-1000 \
198 6473-1000 \
199 9051-1000 \
200 12809-100 \
201 18119-100 \
202 25601-100 \
203 36209-100 \
204 51203-100 \
205 72421-100 \
206 102407-10 \
207 144817-10 \
208 204803-10 \
209 289637-10 \
210 409609-10 \
211 579263-10 \
212 819229-10 \
213 1158613-1 \
214 1638431-1 \
215 2317057-1 \
216 3276803-1 \
217 4634111-1 \
218 6553621-1 \
219 9268211-1 \
220, $(if $(filter $(RUN_DATA_SIZE_MODE),bignquick), \
221 3-1000000 \
222 29-100000 \
223 283-10000 \
224 3203-1000 \
225 25601-100 \
226 289637-10 \
227 1000000-1 \
228 3276803-1 \
229 10000000-1 \
230, $(if $(filter $(RUN_DATA_SIZE_MODE),bignthorough), \
231 1-1000000 \
232 3-1000000 \
233 7-1000000 \
234 13-100000 \
235 29-100000 \
236 53-100000 \
237 101-10000 \
238 211-10000 \
239 401-10000 \
240 809-10000 \
241 1601-1000 \
242 3203-1000 \
243 6473-1000 \
244 12809-100 \
245 25601-100 \
246 51203-100 \
247 102407-10 \
248 204803-10 \
249 409609-10 \
250 819229-10 \
251 1638431-1 \
252 3276803-1 \
253 6553621-1 \
254 12809000-1 \
255 25601000-1 \
256 51203000-1 \
257 102407000-1 \
258 204803000-1 \
259 409609000-1 \
260, $(if $(filter $(RUN_DATA_SIZE_MODE),moderate), \
261 1-1000000 \
262 3-1000000 \
263 7-1000000 \
264 13-100000 \
265 29-100000 \
266 53-100000 \
267 101-10000 \
268 211-10000 \
269 401-10000 \
270 1601-1000 \
271 6473-1000 \
272 25601-100 \
273, $(if $(filter $(RUN_DATA_SIZE_MODE),sweetspot), \
274 1-1000000 \
275 2-1000000 \
276 3-1000000 \
277 5-1000000 \
278 7-1000000 \
279 11-100000 \
280 13-100000 \
281 19-100000 \
282 29-100000 \
283 37-100000 \
284 53-100000 \
285 71-100000 \
286 101-10000 \
287 149-10000 \
288, $(if $(filter $(RUN_DATA_SIZE_MODE),peter), \
289 4-1000000 \
290 8-1000000 \
291 16-100000 \
292 32-100000 \
293 64-100000 \
294 128-10000 \
295 256-10000 \
296 512-10000 \
297 1024-1000 \
298 2048-1000 \
299 4096-1000 \
300 8192-1000 \
301 16384-100 \
302 32768-100 \
303 65536-100 \
304 131072-10 \
305 262144-10 \
306 524288-10 \
307 1048576-1 \
308 2097152-1 \
309 4194304-1 \
310 8388608-1 \
311 16777216-1 \
312, $(if $(filter $(RUN_DATA_SIZE_MODE),none), \
313, $(error Bad RUN_DATA_SIZE_MODE ($(RUN_DATA_SIZE_MODE)); see list of accepted values in Makefile's RUN_DATA_SIZES defimition) \
314))))))))
315
316RUN_REP_IDS=$(shell echo {1..$(RUN_NUM_REPS)}) # 1 2 3
317RUN_REP_EXTS=$(call cross3,,run,$(RUN_REP_IDS),.1csv) # run1.1csv run2.1csv run3.1csv
318
319RUN_LAUNCHES=$(call cross3,--,$(RUN_DATA_SIZES),$(RUN_INTERLEAVE_PCTS),$(RUN_REP_EXTS))
320
321
322RESULT1S=$(call cross,.,$(CORES),$(RUN_LAUNCHES)) # lq-tailq--stack-inslast-allhead.run2.1csv
323
324
325RESULT1S_SHUFD=$(shell shuf -e $(RESULT1S))
326
327%.1csv : CORE=$(basename $(basename $@))
328%.1csv : LAUNCH=$(subst .,,$(suffix $(basename $@)))
329%.1csv : SIZING=$(call proj,--,$(LAUNCH),1)
330%.1csv : NUMNODES=$(call proj,-,$(SIZING),1)
331%.1csv : CHECKDONE=$(call proj,-,$(SIZING),2)
332%.1csv : RUN_INTERLEAVE_PCT=$(call proj,--,$(LAUNCH),2)
333%.1csv : RUN_INTERLEAVE_FRAC=$(shell echo "scale=2; $(RUN_INTERLEAVE_PCT) / 100" | bc)
334%.1csv : REP_ID=$(subst run,,$(call proj,--,$(LAUNCH),3))
335%.1csv : SEED=$(REP_ID)
336%.1csv : RUN_ARGS=$(if $(filter none,$(SIZING)),,$(RUN_DURATION_SEC) $(CHECKDONE) $(NUMNODES) -1 $(SEED) $(RUN_INTERLEAVE_FRAC)) # use REP_ID as seed
337%.1csv : REP_TIME=$(shell date '+%F %H:%M:%S')
338%.1csv : FX=$(call proj,--,$(CORE),1)
339%.1csv : IS_CPP=$(filter cpp-%,$(FX))
340%.1csv : IS_NOT_EXPLICIT_GLIB=$(filter-out %AllocGlib,$(FX))
341%.1csv : USE_LLHEAP=$(if $(and $(IS_CPP),$(IS_NOT_EXPLICIT_GLIB)),yes,no)
342%.1csv : perfprogs FORCE
343# @echo $(FX) $(IS_CPP) $(IS_NOT_EXPLICIT_GLIB) $(USE_LLHEAP) $(LLHEAP_PRELOAD_COND)
344 taskset --cpu-list $(RUN_TASKSET_CPULIST) sh -c '$(LLHEAP_PRELOAD_COND) ./perfexp--$(CORE) $(RUN_ARGS)' | xargs -n 1 printf '%s,%s,%s,%s\n' "$(REP_TIME)" "$(REP_ID)" "$(RUN_ARGS)" | tee -a $(RESULT)
345
346# := for evaluate once and save
347# = for letting cmdline override
348BATCHTIME:=$(shell date '+%F--%H-%M-%S')
349RESULT=results--$(BATCHTIME).csv
350
351sub_make=$(MAKE) --no-print-directory $(1); cat $(1) >> $(2); rm $(1);
352
353
354export RESULT1S_SHUFD # used by sh loop in $(RESULT) recipe
355export RUN_DURATION_SEC # used by sub make; occurs free in %.1csv's variable bindings (not extracted from target name)
356
357
358NTESTS=$(words $(RESULT1S_SHUFD))
359RUNDUR = $(shell expr $(NTESTS) \* $(RUN_DURATION_SEC))
360ETA = $(shell date -d "+$(RUNDUR) seconds" +"%H:%M:%S")
361
362$(RESULT) :
363 @echo running $(NTESTS) tests, eta $(ETA)
364 for r in $$RESULT1S_SHUFD; do $(MAKE) --no-print-directory RESULT=$(RESULT) $$r; done
365
366results-latest.csv : $(RESULT)
367 rm -f $@
368 ln -s $< $@
369
370
371
372clean :
373 rm -f *.o *.d perfexp--*
374
375# The FORCE business means any target that mentions it is also phony
376# https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html says: To always rebuild a pattern rule consider using a “force target” (see [https://www.gnu.org/software/make/manual/html_node/Force-Targets.html]).
377.PHONY: all perfprogs results-latest.csv clean
378FORCE:
379
380.PRECIOUS: result--%.1csv driver--%.o perfexp--% %.o
381
382-include *.d
383
384results-general.csv: MAKE_DISABLE_OBSERVATION=yes
385results-general.csv: EXTRA_COMP_FLAGS+= -DDISABLE_INTERLEAVING
386results-general.csv: FORCE cleanbuild
387 rm -f $@
388 $(MAKE) results-latest.csv RUN_DURATION_SEC=5 RUN_REP_IDS=1 RUN_DATA_SIZE_MODE=sweetspot RUN_INTERLEAVE_PCTS='0' FX_SOLUTIONS='lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref' MAKE_DISABLE_OBSERVATION=yes EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
389 cat results-latest.csv >> $@
390 $(MAKE) results-latest.csv RUN_DURATION_SEC=5 RUN_REP_IDS=2 RUN_DATA_SIZE_MODE=sweetspot RUN_INTERLEAVE_PCTS='0' FX_SOLUTIONS='lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref' MAKE_DISABLE_OBSERVATION=yes EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
391 cat results-latest.csv >> $@
392 $(MAKE) results-latest.csv RUN_DURATION_SEC=5 RUN_REP_IDS=3 RUN_DATA_SIZE_MODE=sweetspot RUN_INTERLEAVE_PCTS='0' FX_SOLUTIONS='lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref' MAKE_DISABLE_OBSERVATION=yes EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
393 cat results-latest.csv >> $@
394 $(MAKE) results-latest.csv RUN_DURATION_SEC=5 RUN_REP_IDS=4 RUN_DATA_SIZE_MODE=sweetspot RUN_INTERLEAVE_PCTS='0' FX_SOLUTIONS='lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref' MAKE_DISABLE_OBSERVATION=yes EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
395 cat results-latest.csv >> $@
396 $(MAKE) results-latest.csv RUN_DURATION_SEC=5 RUN_REP_IDS=4 RUN_DATA_SIZE_MODE=sweetspot RUN_INTERLEAVE_PCTS='0' FX_SOLUTIONS='lq-tailq lq-list cfa-cfa cfa-mandHead cfa-noListed cfa-noIter cfa-likeLq cfa-strip upp-upp cpp-stlref' MAKE_DISABLE_OBSERVATION=yes EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
397 cat results-latest.csv >> $@
398
399#results-zoomout-noshuf.csv: MAKE_DISABLE_OBSERVATION=yes
400results-zoomout-noshuf.csv: EXTRA_COMP_FLAGS+= -DTINY_USER_ITEMS #-DDISABLE_INTERLEAVING
401results-zoomout-noshuf.csv: FORCE cleanbuild
402 make results-latest.csv RUN_DURATION_SEC=5 RUN_NUM_REPS=5 RUN_DATA_SIZE_MODE=bignthorough OPS=stack-insfirst-allhead FX_SOLUTIONS='lq-tailq cfa-cfa upp-upp cpp-stlref cfa-strip' SEED=-1
403 cp results-latest.csv $@
404
405#results-zoomout-shuf.csv: MAKE_DISABLE_OBSERVATION=yes
406results-zoomout-shuf.csv: EXTRA_COMP_FLAGS+= -DTINY_USER_ITEMS #-DDISABLE_INTERLEAVING
407results-zoomout-shuf.csv: FORCE cleanbuild
408 make results-latest.csv RUN_DURATION_SEC=5 RUN_NUM_REPS=5 RUN_DATA_SIZE_MODE=bignthorough OPS=stack-insfirst-allhead FX_SOLUTIONS='lq-tailq cfa-cfa upp-upp cpp-stlref cfa-strip'
409 cp results-latest.csv $@
410
411thesis:
412 $(MAKE) results-general.csv
413 $(MAKE) results-zoomout-noshuf.csv
414 $(MAKE) results-zoomout-shuf.csv
415
416results-smoketest.csv: RUN_DATA_SIZE_MODE=bignquick
417results-smoketest.csv: RUN_NUM_REPS=1
418results-smoketest.csv: RUN_DURATION_SEC=1
419results-smoketest.csv: OP_MOVEMENTS=stack
420results-smoketest.csv: OP_POLARITIES=insfirst
421results-smoketest.csv: OP_ACCESSORS=allhead
422results-smoketest.csv: $(RESULT)
423 mv $< $@
424
425CPUS_AVAIL=8
426
427export RUN_DATA_SIZE_MODE
428export RUN_NUM_REPS
429export RUN_DURATION_SEC
430export OP_MOVEMENTS
431export OP_POLARITIES
432export OP_ACCESSORS
433export EXTRA_COMP_FLAGS
434export FX_SOLUTIONS
435export MAKE_DISABLE_OBSERVATION
436
437cleanbuild: FORCE clean
438 $(MAKE) -j $(CPUS_AVAIL) perfprogs
439
440# equivalents to peter's tests
441
442peter-all:
443 $(MAKE) results-peter-linear.csv
444 $(MAKE) results-peter-random2.csv
445 $(MAKE) results-peter-removeHere.csv
446 $(MAKE) results-peter-xlinear.csv
447 $(MAKE) results-peter-xrandom2.csv
448 $(MAKE) results-peter-xremoveHere.csv
449
450# debatable FX_SOLUTIONS using cfa-cfa or cfa-mandhead
451# cfa-cfa faster on allhead (so I thought from thesis analysis; doubting that now under minimal harness), slower on remelem
452# cfa-mandhead IS what Peter's using
453results-peter-%.csv: RUN_DATA_SIZE_MODE=peter
454results-peter-%.csv: RUN_NUM_REPS=3
455results-peter-%.csv: RUN_DURATION_SEC=3
456results-peter-%.csv: OP_MOVEMENTS=stack
457results-peter-%.csv: OP_POLARITIES=insfirst
458results-peter-%.csv: OP_ACCESSORS=allhead
459results-peter-%.csv: FX_SOLUTIONS=cfa-mandHead cpp-stlref cpp-stlrefAllocGlib
460results-peter-%.csv: MAKE_DISABLE_OBSERVATION=yes
461results-peter-%.csv: cleanbuild $(RESULT)
462 mv $(RESULT) $@
463
464results-peter-linear.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_SHUFFLING_INDIRECTION -DDISABLE_ITERS
465results-peter-xlinear.csv: EXTRA_COMP_FLAGS=
466
467results-peter-random2.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_ITERS
468results-peter-xrandom2.csv: EXTRA_COMP_FLAGS=
469
470results-peter-removeHere.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_SHUFFLING_INDIRECTION
471results-peter-removeHere.csv: OP_ACCESSORS=remelem
472results-peter-xremoveHere.csv: EXTRA_COMP_FLAGS=
473results-peter-xremoveHere.csv: OP_ACCESSORS=remelem
474
475peter-summary.txt: FORCE
476 rm -f $@
477 printf '#size\tmean\tstd\tmin\tmax\tntrials\tignore\tignore\n' >> $@
478 echo >> $@
479 for f in results-peter*.csv; do echo -------------- $$f ---------------- >> $@; python3 qplot.py $$f >> $@; done
480
481
482
483
484fred-all:
485 $(MAKE) results-fred-linear.csv
486 $(MAKE) results-fred-shuf.csv
487 $(MAKE) results-fred-iters.csv
488 $(MAKE) results-fred-thesis.csv
489
490results-fred-%.csv: RUN_DATA_SIZE_MODE=peter
491results-fred-%.csv: RUN_NUM_REPS=3
492results-fred-%.csv: RUN_DURATION_SEC=3
493results-fred-%.csv: OP_MOVEMENTS=stack queue
494results-fred-%.csv: OP_POLARITIES=insfirst
495results-fred-%.csv: OP_ACCESSORS=allhead
496results-fred-%.csv: FX_SOLUTIONS=cfa-cfa cfa-mandHead cpp-stlref lq-tailq
497results-fred-%.csv: MAKE_DISABLE_OBSERVATION=yes
498results-fred-%.csv: cleanbuild $(RESULT)
499 mv $(RESULT) $@
500
501results-fred-linear.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_SHUFFLING_INDIRECTION -DDISABLE_ITERS
502results-fred-shuf.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_ITERS
503results-fred-iters.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING -DDISABLE_SHUFFLING_INDIRECTION
504results-fred-thesis.csv: EXTRA_COMP_FLAGS=-DDISABLE_INTERLEAVING
Note: See TracBrowser for help on using the repository browser.