diff --git a/communication_techniques/parsing.sh b/communication_techniques/parsing.sh index 5e6d5e2..f509622 100755 --- a/communication_techniques/parsing.sh +++ b/communication_techniques/parsing.sh @@ -48,7 +48,7 @@ init_log_vars () fi metriqueList="cache_hits cache_miss cycles total_time" nbIter=`ls -1 *.log | head -1 | sed -r "s/^.*nbIter_([[:digit:]]+).*$/\1/"` - valuePerCacheLine=$(grep "^buf size: " *.log | head -1 | sed -r "s/^.*:buf size: ([[:digit:]]+)$/\1/") + valuePerCacheLine=$(grep "^buf size: " *.log | head -1 | sed -r "s/^.*:buf size: ([[:digit:]]+)[^[:digit:]+]$/\1/") } parse_args () @@ -96,6 +96,7 @@ contains_zero() bench="$2" datFile="$3" lineNum="$4" + numCacheConfigs="$5" if use_histo "$prod" "$bench" then @@ -112,10 +113,10 @@ contains_zero() fi done else - iMin=$((lineNum + 9)) + iMin=$((lineNum + numCacheConfigs * 4 + 1)) # Count the number of spaces in the list + the line feed nbArg=$(echo $argTypeProdList | sed -r "s/[^ ]//g" | wc -c) - iMax=$((iMin + nbArg * 8 - 4)) + iMax=$((iMin + nbArg * numCacheConfigs * 4 - 4)) for i in $(seq $iMin 4 $iMax) do if head -$i $datFile | tail -1 | grep -E "\.0+([^[:digit:]])?$" > /dev/null @@ -164,7 +165,7 @@ create_dat_header () for j in 1 2 3 # 1: total, 2: by loop, 3: by write do echo -n "argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat - for com in $barriereList + for com in `eval echo \\\$\${bench}List` do echo -n "\t$com" >> bench_$bench-prod_$prod-metrique_$metrique.dat done @@ -340,10 +341,10 @@ create_complex_gnuplot_body () else echo -n "plot '$datFile' " >> $patternPlotFile.gnuplot fi - echo -n "every :2:$lineNum:0:$lineNum using 1:$columnNo:xtic(1) title '$baseTitle (L2)'" >> $patternPlotFile.gnuplot + echo -n "every :$numCacheConfigs:$lineNum:$((numCacheConfigs)):$lineNum using 1:$columnNo:xtic(1) title '$baseTitle (L2)'" >> $patternPlotFile.gnuplot if [ $numCacheConfigs -gt 2 ] then - echo -n ", '' every :2:$lineNum:1:$lineNum using 1:$columnNo:xtic(1) title '$baseTitle (mem)'" >> $patternPlotFile.gnuplot + echo -n ", '' every :$numCacheConfigs:$lineNum:$((numCacheConfigs * 2)):$lineNum using 1:$columnNo:xtic(1) title '$baseTitle (mem)'" >> $patternPlotFile.gnuplot fi columnNo=$((columnNo + 1)) done @@ -404,7 +405,7 @@ create_gnuplot_file () esac datFile=bench_$bench-prod_$prod-metrique_$metrique.dat patternPlotFile="bench_$bench-prod_$prod-$metrique-$avg-$yscale" # Name without extension of plot and ps files - if [ $yscale != "logscale" ] || ! contains_zero "$prod" "$bench" "$datFile" "$lineNum" + if [ $yscale != "logscale" ] || ! contains_zero "$prod" "$bench" "$datFile" "$lineNum" "$numCacheConfigs" then create_gnuplot_header "$prod" "$bench" "$patternPlotFile.gnuplot" create_gnuplot_body "$prod" "$bench" "$yscale" "$ylabel" "$lineNum" "$datFile" "$patternPlotFile" "$numCacheConfigs" @@ -424,8 +425,8 @@ main() for prod in $prodList ; do case "$prod" in - matrice) argTypeProd=16 ;; - *) argTypeProd=1 ;; + matrice) argTypeProd=\* ;; + *) argTypeProd=\* ;; esac for bench in "communication" "barriere" ; do eval benchName="\${${bench}List:-}"