time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

makefile (2946B)


      1 OUTPUT=./samples
      2 CC=gcc
      3 OPTIMIZATIONS=-funit-at-a-time -march=native -fno-math-errno -ffast-math -std=gnu99 -fno-unroll-loops -flto
      4 
      5 build:
      6 	$(CC) -O3 samples.c ./squiggle_c/squiggle.c  ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT)
      7 
      8 build-experimental:
      9 	# https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
     10 	rm -f *.gcda
     11 	$(CC) -Ofast -fprofile-generate $(OPTIMIZATIONS) samples.c ./squiggle_c/squiggle.c  ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT)
     12 	./$(OUTPUT)
     13 	$(CC) -Ofast -fprofile-use  $(OPTIMIZATIONS) samples.c ./squiggle_c/squiggle.c  ./squiggle_c/squiggle_more.c -lm -fopenmp -o $(OUTPUT)
     14 	rm *.gcda
     15 	# Using -Ofast increases speed a bit, but I don't trust it. <https://stackoverflow.com/questions/61232427/gcc-differences-between-o3-vs-ofast-optimizations>
     16 
     17 install: 
     18 	rm -r squiggle_c
     19 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.c
     20 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.h
     21 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.c
     22 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.h
     23 	mkdir temp
     24 	mv squiggle* temp
     25 	mv temp squiggle_c
     26 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/examples/more/12_time_to_botec_parallel/example.c -O samples.c
     27 	sed -i 's|../../..|squiggle_c|' samples.c
     28 
     29 install-custom: 
     30 	rm -r squiggle_c
     31 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.c
     32 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle.h
     33 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.c
     34 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/squiggle_more.h
     35 	mkdir temp
     36 	mv squiggle* temp
     37 	mv temp squiggle_c
     38 	wget https://git.nunosempere.com/personal/squiggle.c/raw/branch/master/examples/more/15_time_to_botec_custom_mixture/example.c -O samples.c
     39 	sed -i 's|../../..|squiggle_c|' samples.c
     40 
     41 install-git:
     42 	rm -r squiggle_c
     43 	git clone https://git.nunosempere.com/personal/squiggle.c
     44 	mv squiggle.c squiggle_c
     45 	sudo rm -r squiggle_c/.git
     46 	cp -r squiggle_c/examples/more/12_time_to_botec_parallel/example.c samples.c
     47 	sed -i 's|../../..|squiggle_c|' samples.c
     48 
     49 time-linux: 
     50 	@echo "Running 1000x and taking avg time: OMP_NUM_THREADS=16 $(OUTPUT)"
     51 	@t=$$(/usr/bin/time -f "%e" -p bash -c 'for i in {1..1001}; do OMP_NUM_THREADS=16 $(OUTPUT); done' 2>&1 >/dev/null | grep real | awk '{print $$2}' ); echo "scale=2; 1000 * $$t / 1000" | bc | sed "s|^|Time using 16 threads: |" | sed 's|$$|ms|' && echo
     52 
     53 install-small:
     54 	rm -r squiggle_c
     55 	git clone https://git.nunosempere.com/personal/squiggle.c
     56 	mv squiggle.c squiggle_c
     57 	sudo rm -r squiggle_c/.git
     58 	cp -r squiggle_c/examples/core/02_time_to_botec/example.c samples.c
     59 	sed -i 's|../../..|squiggle_c|' samples.c
     60 
     61 build-small:
     62 	gcc -O3 samples.c ./squiggle_c/squiggle.c  -lm -o $(OUTPUT)