| 1 | # Link make.inc with the targeted architecture in Arch directory
|
|---|
| 2 | # For example : ln -s make_sp6 make.inc
|
|---|
| 3 | #--------------------------------------
|
|---|
| 4 | include make.inc
|
|---|
| 5 |
|
|---|
| 6 | # OpenMP options
|
|---|
| 7 | #---------------
|
|---|
| 8 | CFLAGS += $(CFLAGS_MPI) $(DEF)
|
|---|
| 9 | CFLAGS += $(CFLAGS_OMP) -g
|
|---|
| 10 | CFLAGS += $(CFLAGS_FTI)
|
|---|
| 11 | CFLAGS += -vec-report3
|
|---|
| 12 | LDFLAGS += $(LDFLAGS_MPI)
|
|---|
| 13 | LDFLAGS += $(LDFLAGS_OMP)
|
|---|
| 14 | LDFLAGS += $(LDFLAGS_FTI)
|
|---|
| 15 | LDFLAGS += -lrt
|
|---|
| 16 |
|
|---|
| 17 | # Sources directories
|
|---|
| 18 | #--------------------
|
|---|
| 19 | SRCDIR = .
|
|---|
| 20 |
|
|---|
| 21 | # Objects
|
|---|
| 22 | #------------
|
|---|
| 23 | OBJ = SplitSurface.o cmpflx.o compute_deltat.o conservar.o constoprim.o equation_of_state.o hydro_funcs.o hydro_godunov.o hydro_utils.o main.o make_boundary.o parametres.o perfcnt.o qleftright.o riemann.o slope.o trace.o utils.o vtkfile.o hydro_numa.o cclock.o
|
|---|
| 24 |
|
|---|
| 25 | # Sources files
|
|---|
| 26 | #--------------
|
|---|
| 27 | SRC=SplitSurface.c hydro_funcs.c hydro_numa.c hydro_godunov.c hydro_utils.c main.c parametres.c perfcnt.c utils.c vtkfile.c cclock.c
|
|---|
| 28 | # SRC2 are the files that can be translated to CUDA or OpenCL
|
|---|
| 29 | SRC2=cmpflx.c compute_deltat.c conservar.c constoprim.c equation_of_state.c make_boundary.c qleftright.c riemann.c slope.c trace.c
|
|---|
| 30 | SRC+=$(SRC2)
|
|---|
| 31 |
|
|---|
| 32 | # HEADER=$(wildcard *.h)
|
|---|
| 33 |
|
|---|
| 34 | ifeq ($(PREC),SP)
|
|---|
| 35 | CFLAGS += -DPREC_SP=1
|
|---|
| 36 | endif
|
|---|
| 37 |
|
|---|
| 38 | hydro: $(OBJ)
|
|---|
| 39 | $(CC) $(OBJ) -o hydro $(LDFLAGS)
|
|---|
| 40 |
|
|---|
| 41 | clean:
|
|---|
| 42 | rm -f *.o *~ hydro
|
|---|
| 43 |
|
|---|
| 44 | cleanall:
|
|---|
| 45 | rm -f *.o *~ hydro
|
|---|
| 46 |
|
|---|
| 47 | listing:
|
|---|
| 48 | a2ps --medium=A4dj -C -1 -R -l90 --toc -E --prologue=color --file-align=fill -o listing.ps Makefile $(HEADER) $(SRC)
|
|---|
| 49 | ps2pdf -sPAPERSIZE=a4 listing.ps
|
|---|
| 50 | rm listing.ps
|
|---|
| 51 |
|
|---|
| 52 | %.o: $(SRCDIR)/%.c
|
|---|
| 53 | $(CC) $(CFLAGS) -c $<
|
|---|
| 54 |
|
|---|
| 55 | %.o: $(SRCDIR)/%.cu
|
|---|
| 56 | $(NVCC) $(NVCFLAGS) -c $<
|
|---|
| 57 |
|
|---|
| 58 | # Dependencies
|
|---|
| 59 | #-------------
|
|---|
| 60 | include alldeps.d
|
|---|
| 61 |
|
|---|
| 62 | # To make sure all dependences are correct, uncomment the next two
|
|---|
| 63 | # lines and do a "make alldeps.d" to refresh the list. This command
|
|---|
| 64 | # takes some time so I have not left it active. It is really useful
|
|---|
| 65 | # only if you have added new files (either .c .cu or .h)
|
|---|
| 66 |
|
|---|
| 67 | #alldeps.d: $(SRC)
|
|---|
| 68 | # env CFLAGS='$(CFLAGS)' ./makedeps > alldeps.d
|
|---|
| 69 |
|
|---|
| 70 | vg: hydro
|
|---|
| 71 | ccc_mprun -x -T36000 -c1 -n1 valgrind --tool=callgrind --main-stacksize=35000000 --trace-jump=yes --trace-children=yes --branch-sim=yes --cache-sim=yes --callgrind-out-file=toto ./hydro -i input.nml
|
|---|
| 72 | callgrind_annotate toto qleftright.c
|
|---|
| 73 |
|
|---|
| 74 | hugerun: hydro
|
|---|
| 75 | env OMP_NUM_THREADS=4 ccc_mprun -x -T36000 -c4 -n1 env HUGETLB_MORECORE=yes LD_PRELOAD=/usr/lib64/libhugetlbfs.so hydro -i input.nml
|
|---|
| 76 |
|
|---|
| 77 | run: hydro
|
|---|
| 78 | env OMP_NUM_THREADS=8 ccc_mprun -p kncn -x -T360 -c8 -n1 env KMP_AFFINITY=compact hydro -i input.nml
|
|---|
| 79 |
|
|---|
| 80 | brun16: hydro
|
|---|
| 81 | ccc_mprun -p hybrid -x -T360 -c16 -n1 env OMP_NUM_THREADS=16 KMP_AFFINITY=compact hydro -i input.nml
|
|---|
| 82 |
|
|---|
| 83 | lrun: hydro
|
|---|
| 84 | env OMP_NUM_THREADS=16 KMP_AFFINITY=compact ./hydro -i input.nml
|
|---|
| 85 |
|
|---|
| 86 | prun: hydro
|
|---|
| 87 | ccc_mprun -p knc -N4 -n16 ./hydro -i input.nml
|
|---|
| 88 |
|
|---|
| 89 | lrunhuge: hydro
|
|---|
| 90 | env OMP_NUM_THREADS=8 KMP_AFFINITY=compact HUGETLB_MORECORE=yes LD_PRELOAD=/usr/lib64/libhugetlbfs.so ./hydro -i input.nml
|
|---|
| 91 |
|
|---|
| 92 | urun: hydro
|
|---|
| 93 | env OMP_NUM_THREADS=1 KMP_AFFINITY=scatter ./hydro -i input.nml
|
|---|
| 94 |
|
|---|
| 95 | erun: hydro
|
|---|
| 96 | env OMP_NUM_THREADS=8 KMP_AFFINITY=compact ./hydro -i input.nml
|
|---|
| 97 |
|
|---|
| 98 | rmic: hydro
|
|---|
| 99 | ccc_mprun -p knc -n 1 -x env LD_PRELOAD=/lib64/libhugetlbfs.so OMP_NUM_THREADS=240 ./hydro -i input.nml
|
|---|
| 100 | hugemic: hydro
|
|---|
| 101 | ssh $(HOSTNAME)-mic0 "cd $(PWD); export LD_PRELOAD=/lib64/libhugetlbfs.so ; env OMP_NUM_THREADS=240 KMP_AFFINITY=compact HUGETLB_MORECORE=yes mpiexec -np 1 ./hydro -i input.nml"
|
|---|
| 102 | mmic: hydro
|
|---|
| 103 | ssh $(HOSTNAME)-mic1 "cd $(PWD); env OMP_NUM_THREADS=60 KMP_AFFINITY=compact mpiexec -np 4 ./hydro -i input.nml"
|
|---|
| 104 | fmic: hydro
|
|---|
| 105 | ssh $(HOSTNAME)-mic0 "cd $(PWD); env OMP_NUM_THREADS=8 KMP_AFFINITY=compact mpiexec -np 30 ./hydro -i input.nml"
|
|---|
| 106 |
|
|---|
| 107 | rscan: hydro
|
|---|
| 108 | for i in `seq 10 10 244` ; do ssh $(HOSTNAME)-mic0 "cd $(PWD); env OMP_NUM_THREADS=$$i KMP_AFFINITY=compact mpiexec -np 1 ./hydro -i input.nml " ; done
|
|---|
| 109 |
|
|---|
| 110 | maq: hydro
|
|---|
| 111 | rm -rf toto maqao_funcs.lst maqao_loopslist.lst
|
|---|
| 112 | env OMP_NUM_THREADS=1 ccc_mprun -M 1024 -x -p knc maqao perf -mIOMP -bin="hydro" -t=SX -op=toto -g=small -uarch=SANDY_BRIDGE -- -i input.nml | tee maqao_run.lst
|
|---|
| 113 | maqao perf -d=SFX -bin='hydro' -uarch=SANDY_BRIDGE -op=toto | tee maqao_funcs.lst
|
|---|
| 114 | maqao perf -d=SLX -bin='hydro' -uarch=SANDY_BRIDGE -op=toto | tee maqao_loopslist.lst
|
|---|
| 115 | rm -f maqao_loopsdetail.lst
|
|---|
| 116 | for i in `deploop.pl < maqao_loopslist.lst | sort -n | uniq ` ; do maqao analyze -s -bin='hydro' -uarch=SANDY_BRIDGE -loop=$$i >> maqao_loopsdetail.lst; done
|
|---|
| 117 | for i in `deploop.pl < maqao_loopslist.lst | sort -n | uniq ` ; do maqao analyze -s -bin='hydro' -uarch=SANDY_BRIDGE -loop=$$i -lvl=1 >> maqao_loopsdetail.lst; done
|
|---|
| 118 |
|
|---|
| 119 | natif: hydro
|
|---|
| 120 | ccc_mprun -K -p knc -n 1 env OMP_NUM_THREADS=240 ccc_mprun hydro -i input.nml
|
|---|
| 121 |
|
|---|
| 122 |
|
|---|
| 123 | snbhsw: hydro
|
|---|
| 124 | -ccc_mprun -p knc -T 7200 -n 1 env OMP_NUM_THREADS=1 hydro -i input.nml
|
|---|
| 125 | -ccc_mprun -p haswell -T 7200 -n 1 env OMP_NUM_THREADS=1 hydro -i input.nml
|
|---|
| 126 |
|
|---|
| 127 | scanopt:
|
|---|
| 128 | echo "Opt GATCON CONPRI EOS SLOPE TRACE QLEFTR RIEMAN CMPFLX UPDCON COMPDT MAKBOU ALLRED " > ScanOpts.lst
|
|---|
| 129 | for s in 1 23 32 ; do for n in 256 512 1024 2048 4096 5647; do sed "s/NX/$$n/;s/NS/$$s/" < inputMASK.nml > inputCUR.nml; echo "$${n}_$${s}" >> ScanOpts.lst; echo "Opt GATCON CONPRI EOS SLOPE TRACE QLEFTR RIEMAN CMPFLX UPDCON COMPDT MAKBOU ALLRED " >> ScanOpts.lst; for p in SP DP ; do for i in NVC SE4 AVX AV2 ; do echo $$i; make PREC=$$p MMACH=$$i clean hydro >> compile.lst; ccc_mprun -x -p haswell -n 1 env OMP_NUM_THREADS=1 hydro -i inputCUR.nml | grep 'PE0' | sed "s/PE0/$$i/" >> ScanOpts.lst ; done; echo >> ScanOpts.lst; done; done; done
|
|---|
| 130 |
|
|---|
| 131 | DATEHOUR=$(shell date +%Y%m%d%H%M )
|
|---|
| 132 | Andres:
|
|---|
| 133 | tar czvf Andres_$(DATEHOUR).tgz Makefile *.h *.c input.nml make* alldeps.d
|
|---|
| 134 |
|
|---|
| 135 | #EOF
|
|---|