[Comm tech bench] Some parsing.sh debug

- Correct some gnuplot "every" misuse
- Don't skip 2 lines for useless_loop
- Try to deal with xticlabels => Need a refactoring to have 1 gnuplot
  file per output
This commit is contained in:
Thomas Preud'homme 2010-02-23 11:35:25 +01:00 committed by Thomas Preud'homme
parent 31a2e59227
commit baff7d6b6e
1 changed files with 42 additions and 24 deletions

View File

@ -27,24 +27,22 @@ for prod in $prodList ; do
*) argTypeProd=1 ;;
esac
for bench in "communication" "barriere" ; do
# Create dat headers
for metrique in $metriqueList ; do
> bench_$bench-prod_$prod-metrique_$metrique.dat
# Compare shared L2 to shared mem
if [ $bench = "communication" -o $prod != "useless_loop" ] ; then
echo -ne "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
done
# Compare barrier type
else
echo -ne "argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat
for com in `eval echo \\\$\${bench}List` ; do
for com in $barriereList ; do
echo -ne "\t$com" >> bench_$bench-prod_$prod-metrique_$metrique.dat
done
echo "" >> bench_$bench-prod_$prod-metrique_$metrique.dat
fi
# for file in cache_$cache-*-typeProd_$prod-*-${com}_comm.log ; do
# argTypeProd=`echo "$file" | sed -r "s/.*argTypeProd_([[:digit:]]+).*/\1/"`
# echo -ne "\t\t$argTypeProd" >> bench_$bench-prod_$prod-$metrique.dat
# done
done
if [ $bench = "communication" -o $prod != "useless_loop" ] ; then
for com in `eval echo \\\$\${bench}List` ; do
@ -79,7 +77,9 @@ for prod in $prodList ; do
esac
for argTypeProd in $argTypeProdList ; do
for cache in $cacheList ; do
echo "" >> bench_$bench-prod_$prod-metrique_$metrique.dat
if [ $cache != ${cacheList%% *} -o $argTypeProd != ${argTypeProdList%% *} ] ; then
echo "" >> bench_$bench-prod_$prod-metrique_$metrique.dat
fi
for i in 1 2 3 ; do # 1: total, 2: by loop, 3: by write
echo -ne "\n$argTypeProd\t\t" >> bench_$bench-prod_$prod-metrique_$metrique.dat
for com in `eval echo \\\$\${bench}List` ; do
@ -94,12 +94,11 @@ for prod in $prodList ; do
done
done
fi
if [ "${bench}" != "barriere" ] ;
then
# echo "set style data lines" >> multicores.gnuplot
#else
if [ $bench = "communication" -o $prod != "useless_loop" ] ; then
echo "set style data histogram" >> multicores.gnuplot
#fi
else
echo "set style data lines" >> multicores.gnuplot
fi
for metrique in $metriqueList ; do
case "$metrique" in
cache_hits) ylabel="Nb cache hit" ;;
@ -114,18 +113,39 @@ for prod in $prodList ; do
[ "$yscale" = "nologscale" ] && echo "set yrange [0:*]" >> multicores.gnuplot \
|| echo "set yrange [*:*]" >> multicores.gnuplot
echo "set title \"Producteur : $prod\"" >> multicores.gnuplot
echo "set ylabel \"$ylabel\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-total-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3:1 using 2:xtic(1) title 2 , '' every 3:1 u 3 ti 3" >> multicores.gnuplot
echo "set ylabel \"$ylabel par boucle\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byLoop-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3:2 using 2:xtic(1) title 2 , '' every 3:2 u 3 ti 3" >> multicores.gnuplot
echo "set ylabel \"$ylabel par ecriture\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byWrite-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3:3 using 2:xtic(1) title 2 , '' every 3:3 u 3 ti 3" >> multicores.gnuplot
if [ $bench = "communication" -o $prod != "useless_loop" ] ; then
echo "set ylabel \"$ylabel\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-total-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3::1 using 2:xtic(1) title 2 , '' every 3::1 u 3 ti 3" >> multicores.gnuplot
if [ $metrique != "total_time" -o $yscale != "logscale" ] ; then
echo "set ylabel \"$ylabel par boucle\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byLoop-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3::2 using 2:xtic(1) title 2 , '' every 3::2 u 3 ti 3" >> multicores.gnuplot
echo "set ylabel \"$ylabel par ecriture\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byWrite-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every 3::3 using 2:xtic(1) title 2 , '' every 3::3 u 3 ti 3" >> multicores.gnuplot
fi
else
columnNo=2
for com in `eval echo \\\$\${bench}List` ; do
baseTitle=`head -1 bench_$bench-prod_$prod-metrique_$metrique.dat | cut -f $((columnNo + 2))`
echo "set xtics" >> multicores.gnuplot
echo "set ylabel \"$ylabel\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-total-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every :2:0:0:0 using 1:$columnNo:xtic(1) title '$baseTitle (L2)', '' every :2:0:1:0 using 1:$columnNo:xtic(1) title '$baseTitle (mem)'" >> multicores.gnuplot
if [ $metrique != "total_time" -o $yscale != "logscale" ] ; then
echo "set ylabel \"$ylabel par boucle\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byLoop-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every :2:1:0:1 using 1:$columnNo:xtic(1) title '$baseTitle (L2)', '' every :2:1:1:1 using 1:$columnNo:xtic(1) title '$baseTitle (mem)'" >> multicores.gnuplot
echo "set ylabel \"$ylabel par ecriture\"" >> multicores.gnuplot
echo "set output 'bench_$bench-prod_$prod-$metrique-byWrite-$yscale.ps'" >> multicores.gnuplot
echo "plot 'bench_$bench-prod_$prod-metrique_$metrique.dat' every :2:2:0:2 using 1:$columnNo:xtic(1) title '$baseTitle (L2)', '' every :2:2:1:2 using 1:$columnNo:xtic(1) title '$baseTitle (mem)'" >> multicores.gnuplot
fi
columnNo=$((columnNo + 1))
done
fi
done
done
fi
done
done
@ -134,5 +154,3 @@ gnuplot multicores.gnuplot
for f in *.ps ; do
ps2pdf $f
done
acroread *.pdf