diff --git a/communication_techniques/parsing.sh b/communication_techniques/parsing.sh index 5ee954c..a862450 100755 --- a/communication_techniques/parsing.sh +++ b/communication_techniques/parsing.sh @@ -1,4 +1,4 @@ -#! /bin/bash +#!/bin/sh set -u @@ -8,14 +8,14 @@ communicationList="asm_cache c_cache shared_mem shared_mem_opt pipe" comList=`ls *.log | perl -ni -e '/-([^-]+)_comm/; $a{$1}=""; END { foreach ( sort keys %a ) {print "$_ "}}'` cacheList=`ls *log | perl -ni -e '/cache_([^-]+)-/; $a{$1}=""; END { foreach ( sort keys %a ) {print "$_ "}}'` prodList=`ls *.log | perl -ni -e '/typeProd_([^-]+)-/; $a{$1}=""; END { foreach ( sort keys %a ) {print "$_ "}}'` -barriereCommaList=`echo $barriereList | sed "s/ /,/g"` -argTypeProdList=`eval ls *typeProd_useless_loop*{$barriereCommaList}_comm.log | perl -ni -e '/argTypeProd_([\d]+)-/; $a{$1}=""; END { foreach ( sort { $a <=> $b } keys %a ) {print "$_ "}}'` +firstBarriereComm=`echo $barriereList | sed -r "s/^[^ ]* .*$//"` +argTypeProdList=`eval ls *typeProd_useless_loop*${firstBarriereComm}_comm.log | perl -ni -e '/argTypeProd_([\d]+)-/; $a{$1}=""; END { foreach ( sort { $a <=> $b } keys %a ) {print "$_ "}}'` metriqueList="cache_hits cache_miss cycles total_time" use_histo () { - local prod bench + local prod bench - prod="$1" bench="$2" @@ -25,7 +25,7 @@ use_histo () contains_zero() { - local prod bench datFile lineNum commTechs nbCommTechs nbArg iMin iMax + local prod bench datFile lineNum commTechs nbCommTechs nbArg iMin iMax - prod="$1" bench="$2" datFile="$3" @@ -63,7 +63,7 @@ contains_zero() create_dat_header () { - local prod bench metrique + local prod bench metrique - prod="$1" bench="$2" metrique="$3" @@ -80,10 +80,10 @@ create_dat_header () then echo >> bench_$bench-prod_$prod-metrique_$metrique.dat fi - echo -ne "Method\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "Method\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat for cache in $cacheList do - echo -ne "\t$cache" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "\t$cache" >> bench_$bench-prod_$prod-metrique_$metrique.dat done done # Several points per com and cache (one per calc argument) @@ -96,10 +96,10 @@ create_dat_header () fi for j in 1 2 3 # 1: total, 2: by loop, 3: by write do - echo -ne "argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat for com in $barriereList do - echo -ne "\t$com" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "\t$com" >> bench_$bench-prod_$prod-metrique_$metrique.dat done echo >> bench_$bench-prod_$prod-metrique_$metrique.dat done @@ -109,7 +109,7 @@ create_dat_header () get_metric_values () { - local prod com cache argTypeProd logFile + local prod com cache argTypeProd logFile - prod="$1" com="$2" cache="$3" @@ -122,7 +122,7 @@ get_metric_values () create_simple_dat_body () { - local prod bench metrique argTypeProd + local prod bench metrique argTypeProd - prod="$1" bench="$2" metrique="$3" @@ -132,7 +132,7 @@ create_simple_dat_body () do for i in 1 2 3 # 1: total, 2: by loop, 3: by write do - echo -ne "\n$com\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "\n$com\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat for cache in $cacheList do if [ $i -eq 1 ] @@ -140,7 +140,7 @@ create_simple_dat_body () valuetmp=`get_metric_values "$prod" "$com" "$cache" "$argTypeProd" "$metriquePattern"` eval value$cache=\"$valuetmp\" fi - eval echo -ne "\${value$cache}" | sed -r "s/^([^ ]+ ){$((i-1))}([^ ]+).*/\t\2/" >> bench_$bench-prod_$prod-metrique_$metrique.dat + eval echo -n "\${value$cache}" | sed -r "s/^([^ ]+ ){$((i-1))}([^ ]+).*/\t\2/" >> bench_$bench-prod_$prod-metrique_$metrique.dat done done done @@ -148,7 +148,7 @@ create_simple_dat_body () create_complex_dat_body () { - local prod bench metrique + local prod bench metrique - prod="$1" bench="$2" metrique="$3" @@ -163,7 +163,7 @@ create_complex_dat_body () fi for i in 1 2 3 # 1: total, 2: by loop, 3: by write do - echo -ne "\n$argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat + echo -n "\n$argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat for com in `eval echo \\\$\${bench}List` do if [ $i -eq 1 ] @@ -171,7 +171,7 @@ create_complex_dat_body () valuetmp=`get_metric_values "$prod" "$com" "$cache" "$argTypeProd" "$metriquePattern"` eval value$com=\"$valuetmp\" fi - eval echo -ne "\${value$com}" | sed -r "s/^([^ ]+ ){$((i-1))}([^ ]+).*/\t\2/" >> bench_$bench-prod_$prod-metrique_$metrique.dat + eval echo -n "\${value$com}" | sed -r "s/^([^ ]+ ){$((i-1))}([^ ]+).*/\t\2/" >> bench_$bench-prod_$prod-metrique_$metrique.dat done done done @@ -180,7 +180,7 @@ create_complex_dat_body () create_dat_body () { - local prod bench metrique argTypeProd + local prod bench metrique argTypeProd - prod="$1" bench="$2" metrique="$3" @@ -196,7 +196,7 @@ create_dat_body () create_gnuplot_header () { - local prod bench gnuplotFile + local prod bench gnuplotFile - prod="$1" bench="$2" gnuplotFile="$3" @@ -218,7 +218,7 @@ create_gnuplot_header () create_simple_gnuplot_body () { - local metrique ylabel yscale patternPlotFile datFile + local metrique ylabel yscale patternPlotFile datFile - ylabel="$1" lineNum="$2" datFile="$3" @@ -231,7 +231,7 @@ create_simple_gnuplot_body () create_complex_gnuplot_body () { - local bench ylabel lineNum datFile patternPlotFile columnNo baseTitle + local bench ylabel lineNum datFile patternPlotFile columnNo baseTitle - bench="$1" ylabel="$2" lineNum="$3" @@ -258,7 +258,7 @@ create_complex_gnuplot_body () create_gnuplot_body () { - local prod bench yscale ylabel lineNum datFile patternPlotFile + local prod bench yscale ylabel lineNum datFile patternPlotFile - prod="$1" bench="$2" yscale="$3" @@ -285,7 +285,7 @@ create_gnuplot_body () create_gnuplot_file () { - local prod bench metrique ylabel yscale avg lineNum + local prod bench metrique ylabel yscale avg lineNum - prod="$1" bench="$2" metrique="$3" @@ -319,6 +319,8 @@ create_gnuplot_file () main() { + local - + for prod in $prodList ; do case "$prod" in matrice) argTypeProd=16 ;;