From 4557e98543e8f52896be031dc9313afe195544b5 Mon Sep 17 00:00:00 2001 From: Chuck Yount Date: Thu, 20 Apr 2017 09:59:44 -0700 Subject: [PATCH 1/4] Change default for streaming stores. Also: - Add mfence after every sub-block to ensure functional correctness. - Add arch to name of make output text files. --- Makefile | 24 ++++++++++++------------ src/realv.hpp | 11 +++++++++-- src/stencil_calc.cpp | 44 ++++++++++++++++++++++++-------------------- src/utils.hpp | 1 - stencil-run.sh | 7 ++++--- 5 files changed, 49 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index 880288ac..a6810e70 100644 --- a/Makefile +++ b/Makefile @@ -186,7 +186,6 @@ else ifeq ($(arch),knl) FB_TARGET ?= 512 def_block_args ?= -b 96 def_block_threads ?= 8 - streaming_stores ?= 0 SUB_BLOCK_LOOP_INNER_MODS ?= prefetch(L1) else ifeq ($(arch),skx) @@ -224,6 +223,7 @@ else ifeq ($(arch),snb) else ifeq ($(arch),intel64) ISA ?= -xHOST + GCXX_ISA ?= -march=native FB_TARGET ?= cpp else @@ -233,7 +233,7 @@ $(error Architecture not recognized; use arch=knl, knc, skx, hsw, ivb, snb, or i endif # arch-specific. # general defaults for vars if not set above. -streaming_stores ?= 1 +streaming_stores ?= 0 omp_par_for ?= omp parallel for omp_region_schedule ?= dynamic,1 omp_block_schedule ?= static,1 @@ -282,13 +282,12 @@ else endif LD := $(CXX) MAKE := make -CXXOPT := -O3 +CXXOPT ?= -O3 CXXFLAGS += -g -std=c++11 -Wall $(CXXOPT) OMPFLAGS += -fopenmp LFLAGS += -lrt -FB_CXX := g++ # faster than icpc for the foldBuilder. +FB_CXX ?= g++ # faster than icpc for the foldBuilder. FB_CXXFLAGS += -g -O0 -std=c++11 -Wall # low opt to reduce compile time. -EXTRA_FB_CXXFLAGS = FB_FLAGS += -st $(stencil) -cluster $(cluster) -fold $(fold) ST_MACRO_FILE := stencil_macros.hpp ST_CODE_FILE := stencil_code.hpp @@ -461,9 +460,9 @@ STENCIL_BASES := stencil_main stencil_calc realv_grids utils STENCIL_OBJS := $(addprefix src/,$(addsuffix .$(arch).o,$(STENCIL_BASES))) STENCIL_CXX := $(addprefix src/,$(addsuffix .$(arch).i,$(STENCIL_BASES))) STENCIL_EXEC_NAME := stencil.$(arch).exe -MAKE_REPORT_FILE := make-report.txt -CXXFLAGS_FILE := cxx-flags.txt -LFLAGS_FILE := ld-flags.txt +MAKE_REPORT_FILE := make-report.$(arch).txt +CXXFLAGS_FILE := cxx-flags.$(arch).txt +LFLAGS_FILE := ld-flags.$(arch).txt all: $(STENCIL_EXEC_NAME) $(MAKE_REPORT_FILE) echo $(CXXFLAGS) > $(CXXFLAGS_FILE) @@ -478,6 +477,7 @@ $(MAKE_REPORT_FILE): $(STENCIL_EXEC_NAME) echo-settings: @echo @echo "Build environment for" $(STENCIL_EXEC_NAME) on `date` + @echo host=`hostname` @echo arch=$(arch) @echo stencil=$(stencil) @echo def_thread_divisor=$(def_thread_divisor) @@ -509,7 +509,10 @@ echo-settings: @echo ISA=$(ISA) @echo OMPFLAGS="\"$(OMPFLAGS)\"" @echo EXTRA_CXXFLAGS="\"$(EXTRA_CXXFLAGS)\"" + @echo CXX=$(CXX) + @echo CXXOPT=$(CXXOPT) @echo CXXFLAGS="\"$(CXXFLAGS)\"" + @$(CXX) -v; $(CXX_VER_CMD) @echo RANK_LOOP_OPTS="\"$(RANK_LOOP_OPTS)\"" @echo RANK_LOOP_OUTER_MODS="\"$(RANK_LOOP_OUTER_MODS)\"" @echo RANK_LOOP_OUTER_VARS="\"$(RANK_LOOP_OUTER_VARS)\"" @@ -536,9 +539,6 @@ echo-settings: @echo HALO_LOOP_OUTER_VARS="\"$(HALO_LOOP_OUTER_VARS)\"" @echo HALO_LOOP_INNER_MODS="\"$(HALO_LOOP_INNER_MODS)\"" @echo HALO_LOOP_CODE="\"$(HALO_LOOP_CODE)\"" - @echo CXX=$(CXX) - @echo CXXOPT=$(CXXOPT) - @$(CXX) -v; $(CXX_VER_CMD) code_stats: @echo @@ -612,7 +612,7 @@ clean: rm -fv src/*.[io] *.optrpt src/*.optrpt *.s $(GEN_HEADERS) $(MAKE_REPORT_FILE) realclean: clean - rm -fv stencil*.exe foldBuilder TAGS $(MAKE_REPORT_FILE) $(CXXFLAGS_FILE) $(LFLAGS_FILE) $(FB_STENCIL_LIST) + rm -fv stencil*.exe make-report*.txt cxx-flags*.txt ld-flags.*txt foldBuilder $(FB_STENCIL_LIST) TAGS find . -name '*~' | xargs -r rm -v help: diff --git a/src/realv.hpp b/src/realv.hpp index fbf2f5d8..6865c281 100644 --- a/src/realv.hpp +++ b/src/realv.hpp @@ -163,13 +163,20 @@ namespace yask { for (int i=0; i(begin_sbw, VLEN_W); - const idx_t begin_sbxv = idiv_flr(begin_sbx, VLEN_X); - const idx_t begin_sbyv = idiv_flr(begin_sby, VLEN_Y); - const idx_t begin_sbzv = idiv_flr(begin_sbz, VLEN_Z); - const idx_t end_sbtv = sbt + CLEN_T; - const idx_t end_sbwv = idiv_flr(end_sbw, VLEN_W); - const idx_t end_sbxv = idiv_flr(end_sbx, VLEN_X); - const idx_t end_sbyv = idiv_flr(end_sby, VLEN_Y); - const idx_t end_sbzv = idiv_flr(end_sbz, VLEN_Z); - - // Evaluate sub-block of clusters. - calc_sub_block_of_clusters(begin_sbtv, ARG_W(begin_sbwv) - begin_sbxv, begin_sbyv, begin_sbzv, - end_sbtv, ARG_W(end_sbwv) end_sbxv, end_sbyv, end_sbzv); + // Full rectangular polytope: use optimized code. + else { + + // Divide indices by vector lengths. Use idiv_flr() instead of '/' + // because begin/end vars may be negative (if in halo). + const idx_t begin_sbtv = sbt; + const idx_t begin_sbwv = idiv_flr(begin_sbw, VLEN_W); + const idx_t begin_sbxv = idiv_flr(begin_sbx, VLEN_X); + const idx_t begin_sbyv = idiv_flr(begin_sby, VLEN_Y); + const idx_t begin_sbzv = idiv_flr(begin_sbz, VLEN_Z); + const idx_t end_sbtv = sbt + CLEN_T; + const idx_t end_sbwv = idiv_flr(end_sbw, VLEN_W); + const idx_t end_sbxv = idiv_flr(end_sbx, VLEN_X); + const idx_t end_sbyv = idiv_flr(end_sby, VLEN_Y); + const idx_t end_sbzv = idiv_flr(end_sbz, VLEN_Z); + + // Evaluate sub-block of clusters. + calc_sub_block_of_clusters(begin_sbtv, ARG_W(begin_sbwv) + begin_sbxv, begin_sbyv, begin_sbzv, + end_sbtv, ARG_W(end_sbwv) end_sbxv, end_sbyv, end_sbzv); + } + + // Make sure stores are visible for later loads. + make_stores_visible(); } // Init MPI-related vars and other vars related to my rank's place in diff --git a/src/utils.hpp b/src/utils.hpp index 8b54b513..7ee082ad 100644 --- a/src/utils.hpp +++ b/src/utils.hpp @@ -47,7 +47,6 @@ IN THE SOFTWARE. #include #ifdef WIN32 -#define _mm_clevict(p,h) ((void)0) #define _Pragma(x) #endif diff --git a/stencil-run.sh b/stencil-run.sh index 56be33d2..1d4880ff 100755 --- a/stencil-run.sh +++ b/stencil-run.sh @@ -170,9 +170,10 @@ else envs="$envs LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" fi -# echo make report if it exists. -if [[ -e make-report.txt ]]; then - cat make-report.txt +# print make report if it exists. +make_report=make-report.$arch.txt +if [[ -e $make_report ]]; then + cat $make_report fi # command sequence. From 94fa35dd3d1801149daf6094ecbe80c48eac57dd Mon Sep 17 00:00:00 2001 From: Chuck Yount Date: Fri, 21 Apr 2017 13:54:46 -0700 Subject: [PATCH 2/4] Create bin dir and move scripts into it. Some scripts and the main binary have new names, replacing 'stencil' with 'yask'. Add build capability to yask.sh. --- Makefile | 101 ++++---- gen-layouts.pl => bin/gen-layouts.pl | 0 gen-loops.pl => bin/gen-loops.pl | 0 get-loop-stats.pl => bin/get-loop-stats.pl | 0 .../yask-tuner-summary.csh | 8 +- stencil-tuner.pl => bin/yask-tuner.pl | 28 +-- bin/yask.sh | 216 ++++++++++++++++++ src/mem_macros.hpp | 14 +- stencil-run.sh | 170 +------------- 9 files changed, 298 insertions(+), 239 deletions(-) rename gen-layouts.pl => bin/gen-layouts.pl (100%) rename gen-loops.pl => bin/gen-loops.pl (100%) rename get-loop-stats.pl => bin/get-loop-stats.pl (100%) rename stencil-tuner-summary.csh => bin/yask-tuner-summary.csh (89%) rename stencil-tuner.pl => bin/yask-tuner.pl (98%) create mode 100755 bin/yask.sh diff --git a/Makefile b/Makefile index a6810e70..382ea496 100644 --- a/Makefile +++ b/Makefile @@ -286,7 +286,8 @@ CXXOPT ?= -O3 CXXFLAGS += -g -std=c++11 -Wall $(CXXOPT) OMPFLAGS += -fopenmp LFLAGS += -lrt -FB_CXX ?= g++ # faster than icpc for the foldBuilder. +FB_EXEC := bin/foldBuilder.exe +FB_CXX ?= g++ # faster than icpc for the foldBuilder. FB_CXXFLAGS += -g -O0 -std=c++11 -Wall # low opt to reduce compile time. FB_FLAGS += -st $(stencil) -cluster $(cluster) -fold $(fold) ST_MACRO_FILE := stencil_macros.hpp @@ -381,6 +382,28 @@ else # not Intel compiler endif # compiler. +# Compile with model_cache=1 or 2 to check prefetching. +ifeq ($(model_cache),1) + MACROS += MODEL_CACHE=1 + OMPFLAGS = -qopenmp-stubs +else ifeq ($(model_cache),2) + MACROS += MODEL_CACHE=2 + OMPFLAGS = -qopenmp-stubs +endif + +# Add in OMP flags and user-added flags. +CXXFLAGS += $(OMPFLAGS) $(EXTRA_CXXFLAGS) + +# Some file names. +TAG := $(stencil).$(arch) +STENCIL_BASES := stencil_main stencil_calc realv_grids utils +STENCIL_OBJS := $(addprefix src/,$(addsuffix .$(TAG).o,$(STENCIL_BASES))) +STENCIL_CXX := $(addprefix src/,$(addsuffix .$(TAG).i,$(STENCIL_BASES))) +EXEC_NAME := bin/yask.$(TAG).exe +MAKE_REPORT_FILE := make-report.$(TAG).txt +CXXFLAGS_FILE := cxx-flags.$(TAG).txt +LFLAGS_FILE := ld-flags.$(TAG).txt + # gen-loops.pl args: # Rank loops break up the whole rank into smaller regions. In order for @@ -445,41 +468,24 @@ HALO_LOOP_OUTER_VARS ?= wv,xv,yv,zv HALO_LOOP_CODE ?= $(HALO_LOOP_OUTER_MODS) loop($(HALO_LOOP_OUTER_VARS)) \ $(HALO_LOOP_INNER_MODS) { calc(halo(t)); } -# compile with model_cache=1 or 2 to check prefetching. -ifeq ($(model_cache),1) - MACROS += MODEL_CACHE=1 - OMPFLAGS = -qopenmp-stubs -else ifeq ($(model_cache),2) - MACROS += MODEL_CACHE=2 - OMPFLAGS = -qopenmp-stubs -endif - -CXXFLAGS += $(OMPFLAGS) $(EXTRA_CXXFLAGS) +#### Targets and rules #### -STENCIL_BASES := stencil_main stencil_calc realv_grids utils -STENCIL_OBJS := $(addprefix src/,$(addsuffix .$(arch).o,$(STENCIL_BASES))) -STENCIL_CXX := $(addprefix src/,$(addsuffix .$(arch).i,$(STENCIL_BASES))) -STENCIL_EXEC_NAME := stencil.$(arch).exe -MAKE_REPORT_FILE := make-report.$(arch).txt -CXXFLAGS_FILE := cxx-flags.$(arch).txt -LFLAGS_FILE := ld-flags.$(arch).txt - -all: $(STENCIL_EXEC_NAME) $(MAKE_REPORT_FILE) +all: $(EXEC_NAME) $(MAKE_REPORT_FILE) echo $(CXXFLAGS) > $(CXXFLAGS_FILE) echo $(LFLAGS) > $(LFLAGS_FILE) @cat $(MAKE_REPORT_FILE) - @echo $(STENCIL_EXEC_NAME) "has been built." + @echo $(EXEC_NAME) "has been built. Use bin/yask.sh to run it." -$(MAKE_REPORT_FILE): $(STENCIL_EXEC_NAME) +$(MAKE_REPORT_FILE): $(EXEC_NAME) @echo MAKEFLAGS="\"$(MAKEFLAGS)"\" > $@ 2>&1 $(MAKE) -j1 $(CODE_STATS) echo-settings >> $@ 2>&1 echo-settings: @echo - @echo "Build environment for" $(STENCIL_EXEC_NAME) on `date` + @echo "Build environment for" $(EXEC_NAME) on `date` @echo host=`hostname` - @echo arch=$(arch) @echo stencil=$(stencil) + @echo arch=$(arch) @echo def_thread_divisor=$(def_thread_divisor) @echo def_block_threads=$(def_block_threads) @echo def_rank_args=$(def_rank_args) @@ -543,37 +549,37 @@ echo-settings: code_stats: @echo @echo "Code stats for stencil computation:" - ./get-loop-stats.pl -t='sub_block_loops' *.s + bin/get-loop-stats.pl -t='sub_block_loops' *.s -$(STENCIL_EXEC_NAME): $(STENCIL_OBJS) +$(EXEC_NAME): $(STENCIL_OBJS) $(LD) -o $@ $(STENCIL_OBJS) $(CXXFLAGS) $(LFLAGS) preprocess: $(STENCIL_CXX) -src/stencil_rank_loops.hpp: gen-loops.pl Makefile - ./$< -output $@ $(RANK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_RANK_LOOP_OPTS) "$(RANK_LOOP_CODE)" +src/stencil_rank_loops.hpp: bin/gen-loops.pl Makefile + $< -output $@ $(RANK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_RANK_LOOP_OPTS) "$(RANK_LOOP_CODE)" -src/stencil_region_loops.hpp: gen-loops.pl Makefile - ./$< -output $@ $(REGION_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_REGION_LOOP_OPTS) "$(REGION_LOOP_CODE)" +src/stencil_region_loops.hpp: bin/gen-loops.pl Makefile + $< -output $@ $(REGION_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_REGION_LOOP_OPTS) "$(REGION_LOOP_CODE)" -src/stencil_block_loops.hpp: gen-loops.pl Makefile - ./$< -output $@ $(BLOCK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_BLOCK_LOOP_OPTS) "$(BLOCK_LOOP_CODE)" +src/stencil_block_loops.hpp: bin/gen-loops.pl Makefile + $< -output $@ $(BLOCK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_BLOCK_LOOP_OPTS) "$(BLOCK_LOOP_CODE)" -src/stencil_sub_block_loops.hpp: gen-loops.pl Makefile - ./$< -output $@ $(SUB_BLOCK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_SUB_BLOCK_LOOP_OPTS) "$(SUB_BLOCK_LOOP_CODE)" +src/stencil_sub_block_loops.hpp: bin/gen-loops.pl Makefile + $< -output $@ $(SUB_BLOCK_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_SUB_BLOCK_LOOP_OPTS) "$(SUB_BLOCK_LOOP_CODE)" -src/stencil_halo_loops.hpp: gen-loops.pl Makefile - ./$< -output $@ $(HALO_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_HALO_LOOP_OPTS) "$(HALO_LOOP_CODE)" +src/stencil_halo_loops.hpp: bin/gen-loops.pl Makefile + $< -output $@ $(HALO_LOOP_OPTS) $(EXTRA_LOOP_OPTS) $(EXTRA_HALO_LOOP_OPTS) "$(HALO_LOOP_CODE)" -src/layout_macros.hpp: gen-layouts.pl - ./$< -m > $@ +src/layout_macros.hpp: bin/gen-layouts.pl + $< -m > $@ -src/layouts.hpp: gen-layouts.pl - ./$< -d > $@ +src/layouts.hpp: bin/gen-layouts.pl + $< -d > $@ # Compile the stencil compiler. # TODO: move this to its own makefile. -foldBuilder: src/foldBuilder/*.*pp src/foldBuilder/stencils/*.*pp $(FB_STENCIL_LIST) +$(FB_EXEC): src/foldBuilder/*.*pp src/foldBuilder/stencils/*.*pp $(FB_STENCIL_LIST) $(FB_CXX) $(FB_CXXFLAGS) -Isrc/foldBuilder/stencils -o $@ src/foldBuilder/*.cpp $(EXTRA_FB_CXXFLAGS) $(FB_STENCIL_LIST): src/foldBuilder/stencils/*.hpp @@ -584,8 +590,8 @@ $(FB_STENCIL_LIST): src/foldBuilder/stencils/*.hpp # Run the stencil compiler and post-process its output files. # Use the gmake pattern-rule trick to specify simultaneous targets. -%/$(ST_MACRO_FILE) %/$(ST_CODE_FILE): foldBuilder - ./$< $(FB_FLAGS) $(EXTRA_FB_FLAGS) \ +%/$(ST_MACRO_FILE) %/$(ST_CODE_FILE): $(FB_EXEC) + $< $(FB_FLAGS) $(EXTRA_FB_FLAGS) \ -pm $*/$(ST_MACRO_FILE) -p$(FB_TARGET) $*/$(ST_CODE_FILE) echo >> $*/$(ST_MACRO_FILE) echo '// Settings from YASK Makefile' >> $*/$(ST_MACRO_FILE) @@ -599,20 +605,21 @@ $(FB_STENCIL_LIST): src/foldBuilder/stencils/*.hpp headers: $(GEN_HEADERS) $(FB_STENCIL_LIST) @ echo 'Header files generated.' -%.$(arch).o: %.cpp src/*.hpp src/foldBuilder/*.hpp $(GEN_HEADERS) +%.$(TAG).o: %.cpp src/*.hpp src/foldBuilder/*.hpp $(GEN_HEADERS) $(CXX) $(CXXFLAGS) -c -o $@ $< -%.$(arch).i: %.cpp src/*.hpp src/foldBuilder/*.hpp $(GEN_HEADERS) +%.$(TAG).i: %.cpp src/*.hpp src/foldBuilder/*.hpp $(GEN_HEADERS) $(CXX) $(CXXFLAGS) -E $< > $@ tags: rm -f TAGS ; find . -name '*.[ch]pp' | xargs etags -C -a clean: - rm -fv src/*.[io] *.optrpt src/*.optrpt *.s $(GEN_HEADERS) $(MAKE_REPORT_FILE) + rm -fv src/*.[io] *.optrpt */*.optrpt *.s $(GEN_HEADERS) $(MAKE_REPORT_FILE) realclean: clean - rm -fv stencil*.exe make-report*.txt cxx-flags*.txt ld-flags.*txt foldBuilder $(FB_STENCIL_LIST) TAGS + rm -fv bin/yask*.exe make-report*.txt cxx-flags*.txt ld-flags.*txt $(FB_EXEC) $(FB_STENCIL_LIST) TAGS + rm -fv stencil*.exe stencil-tuner-summary.csh stencil-tuner.pl gen-layouts.pl gen-loops.pl get-loop-stats.pl find . -name '*~' | xargs -r rm -v help: diff --git a/gen-layouts.pl b/bin/gen-layouts.pl similarity index 100% rename from gen-layouts.pl rename to bin/gen-layouts.pl diff --git a/gen-loops.pl b/bin/gen-loops.pl similarity index 100% rename from gen-loops.pl rename to bin/gen-loops.pl diff --git a/get-loop-stats.pl b/bin/get-loop-stats.pl similarity index 100% rename from get-loop-stats.pl rename to bin/get-loop-stats.pl diff --git a/stencil-tuner-summary.csh b/bin/yask-tuner-summary.csh similarity index 89% rename from stencil-tuner-summary.csh rename to bin/yask-tuner-summary.csh index 95be4d92..a73929e2 100755 --- a/stencil-tuner-summary.csh +++ b/bin/yask-tuner-summary.csh @@ -26,15 +26,15 @@ # Purpose: find best result from each GA search csv file. if ( "-$1" == "-" ) then - if ( `echo stencil-tuner*.csv | wc -l` > 0 ) then - $0 stencil-tuner*.csv + if ( `echo yask-tuner*.csv | wc -l` > 0 ) then + $0 yask-tuner*.csv else - echo "usage: $0 " + echo "usage: $0 " endif exit endif -echo "Summary of stencil-tuner results:" +echo "Summary of yask-tuner results:" head -n1 $1 foreach f ($*) echo '==========' diff --git a/stencil-tuner.pl b/bin/yask-tuner.pl similarity index 98% rename from stencil-tuner.pl rename to bin/yask-tuner.pl index 4d09d775..c75a3f5e 100755 --- a/stencil-tuner.pl +++ b/bin/yask-tuner.pl @@ -97,7 +97,7 @@ sub usage { " -sde Run binary on SDE (for testing only).\n". " -makePrefix= Prefix make command with .\n". " -makeArgs= Pass additional to make command.\n". - " -runArgs= Pass additional to stencil-run command.\n". + " -runArgs= Pass additional to bin/yask.sh command.\n". " -ranks= Number of ranks to use on host (x-dimension only).\n". "\nstencil options:\n". " -stencil= Specify stencil: iso3dfd, 3axis, 9axis, 3plane, cube, ave, awp, ... (required).\n". @@ -120,7 +120,7 @@ sub usage { " -dw= Set size of 'w' dim to (only for 4D problems).\n". " -mem=- Set allowable est. memory usage between and GiB (default is $minGB-$maxGB).\n". " -maxVecsInCluster= Maximum vectors allowed in cluster (default is $maxVecsInCluster).\n". - " -noPrefetch Disable any prefetching (shortcut for '-pfdl1=0 -pfdl2=0').\n". + " -noPrefetch Disable any prefetching (shortcut for '-pfd_l1=0 -pfd_l2=0').\n". " -noFolding Allow only 1D vectorization (in any direction).\n". " -zLoop Force inner loop in 'z' direction.\n". " -zLayout Force inner memory layout in 'z' direction.\n". @@ -209,8 +209,8 @@ sub usage { $stencil = $1; } elsif ($opt eq '-noprefetch') { - $geneRanges{$autoKey.'pfdl1'} = [ 0 ]; - $geneRanges{$autoKey.'pfdl2'} = [ 0 ]; + $geneRanges{$autoKey.'pfd_l1'} = [ 0 ]; + $geneRanges{$autoKey.'pfd_l2'} = [ 0 ]; } elsif ($opt =~ '^-maxvecsincluster=(\d+)$') { $maxVecsInCluster = $1; @@ -304,7 +304,7 @@ sub usage { my $hostStr = defined $host ? $host : hostname(); my $timeStamp=`date +%Y-%m-%d_%H-%M-%S`; chomp $timeStamp; -my $outFile = "stencil-tuner$searchTypeStr.$stencil.$arch.$hostStr.$timeStamp.csv"; +my $outFile = "yask-tuner$searchTypeStr.$stencil.$arch.$hostStr.$timeStamp.csv"; print "Output will be saved in '$outFile'.\n"; $outFile = '/dev/null' if $checking; @@ -504,8 +504,8 @@ sub usage { # prefetch distances for l1 and l2. # all non-pos numbers => no prefetching, so ~50% chance of being enabled. - [ -$maxPfdl1, $maxPfdl1, 1, 'pfdl1' ], - [ -$maxPfdl2, $maxPfdl2, 1, 'pfdl2' ], + [ -$maxPfdl1, $maxPfdl1, 1, 'pfd_l1' ], + [ -$maxPfdl2, $maxPfdl2, 1, 'pfd_l2' ], # other build options. [ 0, 100, 1, 'exprSize' ], # expression-size threshold. @@ -734,7 +734,7 @@ ($$) my $makeCmd = "$makePrefix make clean; ". "$makePrefix make -j all EXTRA_MACROS='$macros' ". - "arch=$arch real_bytes=$realBytes stencil=$stencil radius=$radius $margs $makeArgs"; + "stencil=$stencil arch=$arch real_bytes=$realBytes radius=$radius $margs $makeArgs"; $makeCmd = "echo 'build disabled'" if !$doBuild; return $makeCmd; } @@ -744,14 +744,14 @@ () my $exePrefix = 'time'; $exePrefix .= " sde -$arch --" if $sde; - my $runCmd = "./stencil-run.sh"; + my $runCmd = "bin/yask.sh"; if (defined $mic) { $runCmd .= " -mic $mic"; } else { $exePrefix .= " numactl -p 1" if $arch eq 'knl' && !$sde; # TODO: fix for cache mode. $runCmd .= " -host $host" if defined $host; } - $runCmd .= " -exe_prefix '$exePrefix' -arch $arch $runArgs"; + $runCmd .= " -exe_prefix '$exePrefix' -stencil $stencil -arch $arch $runArgs"; return $runCmd; } @@ -1208,8 +1208,8 @@ sub fitness { my $thread_divisor_exp = readHash($h, 'thread_divisor_exp', 0); my $bthreads_exp = readHash($h, 'bthreads_exp', 0); my $layout = readHash($h, 'layout', 1); - my $pfdl1 = readHash($h, 'pfdl1', 1); - my $pfdl2 = readHash($h, 'pfdl2', 1); + my $pfdl1 = readHash($h, 'pfd_l1', 1); + my $pfdl2 = readHash($h, 'pfd_l2', 1); my $ompRegionSchedule = readHash($h, 'ompRegionSchedule', 1); my $ompBlockSchedule = readHash($h, 'ompBlockSchedule', 1); @@ -1357,8 +1357,8 @@ sub fitness { # make sure pfld2 > pfld1. $pfdl2 = $pfdl1 + 1 if $pfdl1 >= $pfdl2; } - $macros .= " PFDL1=$pfdl1" if $pfdl1 > 0; - $macros .= " PFDL2=$pfdl2" if $pfdl2 > 0; + $mvars .= " pfd_l1=$pfdl1" if $pfdl1 > 0; + $mvars .= " pfd_l2=$pfdl2" if $pfdl2 > 0; # cluster & fold. $mvars .= " cluster=x=$cvs[0],y=$cvs[1],z=$cvs[2]"; diff --git a/bin/yask.sh b/bin/yask.sh new file mode 100755 index 00000000..4071a106 --- /dev/null +++ b/bin/yask.sh @@ -0,0 +1,216 @@ +#!/bin/bash + +############################################################################## +## YASK: Yet Another Stencil Kernel +## Copyright (c) 2014-2017, Intel Corporation +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to +## deal in the Software without restriction, including without limitation the +## rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +## sell copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## * The above copyright notice and this permission notice shall be included in +## all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +## IN THE SOFTWARE. +############################################################################## + +# Purpose: run stencil kernel in specified environment. +echo "Invocation: $0 $@" + +# Env vars to set. +envs="OMP_DISPLAY_ENV=VERBOSE OMP_PLACES=cores" +envs="$envs KMP_VERSION=1 KMP_HOT_TEAMS_MODE=1 KMP_HOT_TEAMS_MAX_LEVEL=2" +envs="$envs I_MPI_PRINT_VERSION=1 I_MPI_DEBUG=5" + +# Extra options for exe. +opts="" + +unset arch # Don't want to inherit from env. +while true; do + + if [[ ! -n ${1+set} ]]; then + break + + elif [[ "$1" == "-h" || "$1" == "-help" ]]; then + opts="$opts -h" + shift + echo "$0 is a wrapper around the stencil executable to facilitate setting up the proper environment." + echo "usage: $0 -stencil -arch [-mic |-host ] [-sh_prefix ] [-exe_prefix ] [-ranks ] [...] [[--] ]" + echo " " + if [[ -z ${stencil:+ok} || -z ${arch:+ok} ]]; then + echo "To see executable options, run '$0 -stencil -arch -- -help'." + else + echo "To see executable options, run '$0 -stencil $stencil -arch $arch -- -help'." + fi + echo " " + echo "All options to be passed to the executable must be at the end of the command line." + echo "The sh_prefix command is used to prefix a sub-shell." + echo "The exe_prefix command is used to prefix the executable (set to 'true' to avoid actual run)." + echo "If '-host ' is given, 'ssh ' will be pre-pended to the sh_prefix command." + echo "The '-ranks' option is for simple one-socket x-dimension partitioning only." + echo " If -ranks is given, 'mpirun -n -ppn ' is pre-pended to the exe_prefix command," + echo " and -nrx is passed to the executable." + echo " If a different MPI command or config is needed, use -exe_prefix explicitly" + echo " and -nr* options as needed." + echo "If -arch 'knl' is given, it implies the following (which can be overridden):" + echo " -exe_prefix 'numactl --preferred=1'" + echo "If -mic is given, it implies the following (which can be overridden):" + echo " -arch 'knc'" + echo " -host "`hostname`"-mic" + exit 1 + + elif [[ "$1" == "-stencil" && -n ${2+set} ]]; then + stencil=$2 + shift + shift + + elif [[ "$1" == "-arch" && -n ${2+set} ]]; then + arch=$2 + shift + shift + + elif [[ "$1" == "-sh_prefix" && -n ${2+set} ]]; then + sh_prefix=$2 + shift + shift + + elif [[ "$1" == "-exe_prefix" && -n ${2+set} ]]; then + exe_prefix=$2 + shift + shift + + elif [[ "$1" == "-host" && -n ${2+set} ]]; then + host=$2 + shift + shift + + elif [[ "$1" == "-mic" && -n ${2+set} ]]; then + arch="knc" + host=`hostname`-mic$2 + shift + shift + + elif [[ "$1" == "-ranks" && -n ${2+set} ]]; then + nranks=$2 + opts="$opts -nrx $nranks" + shift + shift + + elif [[ "$1" =~ ^[A-Za-z0-9_]+= ]]; then + envs="$envs $1" + shift + + elif [[ "$1" == "--" ]]; then + shift + + # will pass remaining options to executable. + break + + else + # will pass remaining options to executable. + break + fi + +done # parsing options. + +# Check required opts. +if [[ -z ${stencil:+ok} ]]; then + if [[ -z ${arch:+ok} ]]; then + echo "error: missing required options: -stencil -arch " + exit 1 + fi + echo "error: missing required option: -stencil " + exit 1 +fi +if [[ -z ${arch:+ok} ]]; then + echo "error: missing required option: -arch " + exit 1 +fi + +# Set defaults for KNL. +# TODO: run numactl [on host] to determine if in flat mode. +if [[ "$arch" == "knl" ]]; then + true ${exe_prefix='numactl --preferred=1'} +fi + +# Simplified MPI in x-dim only. +if [[ -n "$nranks" ]]; then + exe_prefix="mpirun -n $nranks -ppn $nranks $exe_prefix" +fi + +# Bail on errors past this point. +set -e + +# These values must match the ones in Makefile. +tag=$stencil.$arch +exe="bin/yask.$tag.exe" +make_report=make-report.$tag.txt + +# Check for executable. +if [[ ! -x $exe ]]; then + echo "'$exe' not found or not executable; trying to build with default settings..." + make clean; make -j stencil=$stencil arch=$arch +fi +if [[ ! -x $exe ]]; then + echo "error: '$exe' not found or not executable." + exit 1 +fi + +# Additional settings w/special cases for KNC when no host specified. +if [[ $arch == "knc" && -z ${host+ok} ]]; then + dir=/tmp/$USER + icc=`which icc` + iccdir=`dirname $icc`/../.. + libpath=":$iccdir/compiler/lib/mic" + ssh $host "rm -rf $dir; mkdir -p $dir/bin" + scp $exe $host:$dir/bin +else + dir=`pwd` + libpath=":$HOME/lib" +fi + +# Run on specified host +if [[ -n "$host" ]]; then + sh_prefix="ssh $host $sh_prefix" + envs="$envs PATH=$PATH LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" + + nm=1 + while true; do + echo "Verifying access to '$host'..." + ping -c 1 $host && ssh $host uname -a && break + echo "Waiting $nm min before trying again..." + sleep $(( nm++ * 60 )) + done +else + envs="$envs LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" +fi + +# Print make report if it exists. +if [[ -e $make_report ]]; then + echo "Build report:" + cat $make_report +fi + +# Command sequence. +cmds="cd $dir; uname -a; lscpu; numactl -H; ldd $exe; env $envs $exe_prefix $exe $opts $@" + +date +echo "===================" + +if [[ -z "$sh_prefix" ]]; then + sh -c -x "$cmds" +else + echo "Running shell under '$sh_prefix'..." + $sh_prefix "sh -c -x '$cmds'" +fi + +date diff --git a/src/mem_macros.hpp b/src/mem_macros.hpp index ecf3e836..c620ef9b 100644 --- a/src/mem_macros.hpp +++ b/src/mem_macros.hpp @@ -38,12 +38,12 @@ IN THE SOFTWARE. #define YASK_PAD (17) // cache-lines between data buffers. #define YASK_ALIGNMENT (2 * 1024 * 1024) // 2MiB-page - // Set MODEL_CACHE to 1 or 2 to model L1 or L2. +// Set MODEL_CACHE to 1 or 2 to model L1 or L2. #ifdef MODEL_CACHE #include "cache_model.hpp" #endif - // L1 and L2 hints +// L1 and L2 hints #define L1 _MM_HINT_T0 #define L2 _MM_HINT_T1 @@ -57,16 +57,16 @@ IN THE SOFTWARE. #endif #endif - ////// Default prefetch distances. - // These are only used if and when prefetch code is generated - // by gen-loops.pl. +////// Default prefetch distances. +// These are only used if and when prefetch code is generated by +// gen-loops.pl. - // how far to prefetch ahead for L1. +// How far to prefetch ahead for L1. #ifndef PFDL1 #define PFDL1 1 #endif - // how far to prefetch ahead for L2. +// How far to prefetch ahead for L2. #ifndef PFDL2 #define PFDL2 2 #endif diff --git a/stencil-run.sh b/stencil-run.sh index 1d4880ff..c3c0be2a 100755 --- a/stencil-run.sh +++ b/stencil-run.sh @@ -23,170 +23,6 @@ ## IN THE SOFTWARE. ############################################################################## -# Purpose: run stencil kernel in specified environment. - -# Env vars to set. -envs="OMP_DISPLAY_ENV=VERBOSE OMP_PLACES=cores" -envs="$envs KMP_VERSION=1 KMP_HOT_TEAMS_MODE=1 KMP_HOT_TEAMS_MAX_LEVEL=2" - -# Extra options for exe. -opts="" - -unset arch -while true; do - - if [[ ! -n ${1+set} ]]; then - break - - elif [[ "$1" == "-h" || "$1" == "-help" ]]; then - opts="$opts -h" - shift - echo "$0 is a wrapper around the stencil executable to facilitate setting up the proper environment." - echo "usage: $0 -arch [-mic |-host ] [-sh_prefix ] [-exe_prefix ] [-ranks ] [...] [[--] ]" - echo " " - if [[ -z ${arch:+ok} ]]; then - echo "To see executable options, run '$0 -arch -- -help'." - else - echo "To see executable options, run '$0 -arch $arch -- -help'." - fi - echo " " - echo "All options to be passed to the executable must be at the end of the command line." - echo "The sh_prefix command is used to prefix a sub-shell." - echo "The exe_prefix command is used to prefix the executable (set to 'true' to avoid actual run)." - echo "If '-host ' is given, 'ssh ' will be pre-pended to the sh_prefix command." - echo "The '-ranks' option is for simple one-socket x-dimension partitioning only." - echo " If -ranks is given, 'mpirun -n -ppn ' is pre-pended to the exe_prefix command," - echo " and -nrx is passed to the executable." - echo " If a different MPI command or config is needed, use -exe_prefix explicitly" - echo " and -nr* options as needed." - echo "If -arch 'knl' is given, it implies the following (which can be overridden):" - echo " -exe_prefix 'numactl --preferred=1'" - echo "If -mic is given, it implies the following (which can be overridden):" - echo " -arch 'knc'" - echo " -host "`hostname`"-mic" - exit 1 - - elif [[ "$1" == "-sh_prefix" && -n ${2+set} ]]; then - sh_prefix=$2 - shift - shift - - elif [[ "$1" == "-exe_prefix" && -n ${2+set} ]]; then - exe_prefix=$2 - shift - shift - - elif [[ "$1" == "-host" && -n ${2+set} ]]; then - host=$2 - shift - shift - - elif [[ "$1" == "-mic" && -n ${2+set} ]]; then - arch="knc" - host=`hostname`-mic$2 - shift - shift - - elif [[ "$1" == "-arch" && -n ${2+set} ]]; then - arch=$2 - shift - shift - - elif [[ "$1" == "-ranks" && -n ${2+set} ]]; then - nranks=$2 - opts="$opts -nrx $nranks" - shift - shift - - elif [[ "$1" =~ ^[A-Za-z0-9_]+= ]]; then - envs="$envs $1" - shift - - elif [[ "$1" == "--" ]]; then - shift - - # will pass remaining options to executable. - break - - else - # will pass remaining options to executable. - break - fi - -done # parsing options. - -# check arch. -if [[ -z ${arch:+ok} ]]; then - echo "error: must use -arch " - exit 1 -fi - -# set defaults for KNL. -if [[ "$arch" == "knl" ]]; then - true ${exe_prefix='numactl --preferred=1'} -fi - -# MPI -if [[ -n "$nranks" ]]; then - exe_prefix="mpirun -n $nranks -ppn $nranks $exe_prefix" - envs="$envs I_MPI_PRINT_VERSION=1 I_MPI_DEBUG=5" -fi - -# bail on errors past this point. -set -e - -exe="stencil.$arch.exe" -if [[ ! -x $exe ]]; then - echo "error: '$exe' not found or not executable." - exit 1 -fi - -# additional settings w/special cases for KNC when no host specified. -if [[ $arch == "knc" && -z ${host+ok} ]]; then - dir=/tmp/$USER - icc=`which icc` - iccdir=`dirname $icc`/../.. - libpath=":$iccdir/compiler/lib/mic" - ssh $host "rm -rf $dir; mkdir -p $dir" - scp $exe $host:$dir -else - dir=`pwd` - libpath=":$HOME/lib" -fi - -# run on specified host -if [[ -n "$host" ]]; then - sh_prefix="ssh $host $sh_prefix" - envs="$envs PATH=$PATH LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" - - nm=1 - while true; do - echo "Verifying access to '$host'..." - ping -c 1 $host && ssh $host uname -a && break - echo "Waiting $nm min before trying again..." - sleep $(( nm++ * 60 )) - done -else - envs="$envs LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" -fi - -# print make report if it exists. -make_report=make-report.$arch.txt -if [[ -e $make_report ]]; then - cat $make_report -fi - -# command sequence. -cmds="cd $dir; uname -a; lscpu; numactl -H; ldd ./$exe; env $envs $exe_prefix ./$exe $opts $*" - -date -echo "===================" - -if [[ -z "$sh_prefix" ]]; then - sh -c -x "$cmds" -else - echo "Running shell under '$sh_prefix'..." - $sh_prefix "sh -c -x '$cmds'" -fi - -date +echo "$0 has been replaced with bin/yask.sh." +echo "yask.sh requires an additional '-stencil ' argument." +exit 1 From 66c20371a9caab7e2b53079a0cd576a35cc11a3f Mon Sep 17 00:00:00 2001 From: Chuck Yount Date: Fri, 21 Apr 2017 16:12:43 -0700 Subject: [PATCH 3/4] Keep log file of yask run. Also, clean up help message. --- bin/yask.sh | 111 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 40 deletions(-) diff --git a/bin/yask.sh b/bin/yask.sh index 4071a106..2ba8ef86 100755 --- a/bin/yask.sh +++ b/bin/yask.sh @@ -24,7 +24,8 @@ ############################################################################## # Purpose: run stencil kernel in specified environment. -echo "Invocation: $0 $@" +invo="Invocation: $0 $@" +echo $invo # Env vars to set. envs="OMP_DISPLAY_ENV=VERBOSE OMP_PLACES=cores" @@ -43,29 +44,43 @@ while true; do elif [[ "$1" == "-h" || "$1" == "-help" ]]; then opts="$opts -h" shift - echo "$0 is a wrapper around the stencil executable to facilitate setting up the proper environment." - echo "usage: $0 -stencil -arch [-mic |-host ] [-sh_prefix ] [-exe_prefix ] [-ranks ] [...] [[--] ]" + echo "$0 is a wrapper around the stencil executable to set up the proper environment." + echo "usage: $0 -stencil -arch [script-options] [--] [exe-options]" + echo "required parameters to specify the executable:" + echo " -stencil " + echo " Corresponds to stencil= used during compilation" + echo " -arch " + echo " Corresponds to arch= used during compilation" + echo "script-options:" + echo " -h" + echo " Print this help." + echo " To get executable help, run '$0 -stencil -arch -- -help'" + echo " -host |-mic " + echo " Specify host to run executable on." + echo " 'ssh ' will be pre-pended to the sh_prefix command." + echo " If -arch 'knl' is given, it implies the following (which can be overridden):" + echo " -exe_prefix 'numactl --preferred=1'" + echo " If -mic is given, it implies the following (which can be overridden):" + echo " -arch 'knc'" + echo " -host "`hostname`"-mic" + echo " -sh_prefix " + echo " Add command-prefix before the sub-shell." + echo " -exe_prefix " + echo " Add command-prefix before the executable." + echo " -ranks " + echo " Simplified MPI run (x-dimension partition only)." + echo " 'mpirun -n -ppn ' is prepended to the exe_prefix command," + echo " and '-nrx' is passed to the executable." + echo " If a different MPI command or config is needed, use -exe_prefix " + echo " explicitly and -nr* options as needed (and do not use '-ranks')." + echo " -log " + echo " Write copy of output to ." + echo " Default is based on stencil, arch, host-name, and time-stamp." + echo " Use '/dev/null' to avoid making a log." + echo " " + echo " Set environment variable to ." + echo " Repeat as necessary to set multiple vars." echo " " - if [[ -z ${stencil:+ok} || -z ${arch:+ok} ]]; then - echo "To see executable options, run '$0 -stencil -arch -- -help'." - else - echo "To see executable options, run '$0 -stencil $stencil -arch $arch -- -help'." - fi - echo " " - echo "All options to be passed to the executable must be at the end of the command line." - echo "The sh_prefix command is used to prefix a sub-shell." - echo "The exe_prefix command is used to prefix the executable (set to 'true' to avoid actual run)." - echo "If '-host ' is given, 'ssh ' will be pre-pended to the sh_prefix command." - echo "The '-ranks' option is for simple one-socket x-dimension partitioning only." - echo " If -ranks is given, 'mpirun -n -ppn ' is pre-pended to the exe_prefix command," - echo " and -nrx is passed to the executable." - echo " If a different MPI command or config is needed, use -exe_prefix explicitly" - echo " and -nr* options as needed." - echo "If -arch 'knl' is given, it implies the following (which can be overridden):" - echo " -exe_prefix 'numactl --preferred=1'" - echo "If -mic is given, it implies the following (which can be overridden):" - echo " -arch 'knc'" - echo " -host "`hostname`"-mic" exit 1 elif [[ "$1" == "-stencil" && -n ${2+set} ]]; then @@ -88,6 +103,11 @@ while true; do shift shift + elif [[ "$1" == "-log" && -n ${2+set} ]]; then + logfile=$2 + shift + shift + elif [[ "$1" == "-host" && -n ${2+set} ]]; then host=$2 shift @@ -150,23 +170,39 @@ fi # Bail on errors past this point. set -e +# Actual host. +exe_host=${host:-`hostname`} + +# Init log file. +true ${logfile=logs/yask.$stencil.$arch.$exe_host.`date +%Y-%m-%d_%H-%M-%S`.log} +echo "Writing log to '$logfile'." +mkdir -p `dirname $logfile` +echo $invo > $logfile + # These values must match the ones in Makefile. tag=$stencil.$arch exe="bin/yask.$tag.exe" make_report=make-report.$tag.txt -# Check for executable. +# Try to build exe if needed. if [[ ! -x $exe ]]; then echo "'$exe' not found or not executable; trying to build with default settings..." - make clean; make -j stencil=$stencil arch=$arch + make clean; make -j stencil=$stencil arch=$arch 2>&1 | tee -a $logfile + +# Or, save most recent make report to log if it exists. +elif [[ -e $make_report ]]; then + echo "Build log from '$make_report':" >> $logfile + cat $make_report >> $logfile fi + +# Double-check that exe exists. if [[ ! -x $exe ]]; then - echo "error: '$exe' not found or not executable." + echo "error: '$exe' not found or not executable." | tee -a $logfile exit 1 fi -# Additional settings w/special cases for KNC when no host specified. -if [[ $arch == "knc" && -z ${host+ok} ]]; then +# Additional setup for KNC. +if [[ $arch == "knc" && -n "$host" ]]; then dir=/tmp/$USER icc=`which icc` iccdir=`dirname $icc`/../.. @@ -178,7 +214,7 @@ else libpath=":$HOME/lib" fi -# Run on specified host +# Setup to run on specified host. if [[ -n "$host" ]]; then sh_prefix="ssh $host $sh_prefix" envs="$envs PATH=$PATH LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" @@ -194,23 +230,18 @@ else envs="$envs LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH$libpath" fi -# Print make report if it exists. -if [[ -e $make_report ]]; then - echo "Build report:" - cat $make_report -fi - # Command sequence. cmds="cd $dir; uname -a; lscpu; numactl -H; ldd $exe; env $envs $exe_prefix $exe $opts $@" -date -echo "===================" +date | tee -a $logfile +echo "===================" | tee -a $logfile if [[ -z "$sh_prefix" ]]; then - sh -c -x "$cmds" + sh -c -x "$cmds" 2>&1 | tee -a $logfile else echo "Running shell under '$sh_prefix'..." - $sh_prefix "sh -c -x '$cmds'" + $sh_prefix "sh -c -x '$cmds'" 2>&1 | tee -a $logfile fi -date +date | tee -a $logfile +echo "Log saved in '$logfile'." From e31df942683b199e319475c47513ca131280ee82 Mon Sep 17 00:00:00 2001 From: Chuck Yount Date: Fri, 21 Apr 2017 17:26:30 -0700 Subject: [PATCH 4/4] Update docs with new perf and script name. --- docs/YASK-intro.pdf | Bin 716615 -> 716654 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/YASK-intro.pdf b/docs/YASK-intro.pdf index da4d0607ebbe75a8a118d85341e4ead93dc9cb9b..d01fe8014f78523f9d274fe4b101313821582b48 100755 GIT binary patch delta 81191 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 delta 82914 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

WK` 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