Add shell options to local function params

This requires to switch from bash to sh
This commit is contained in:
Thomas Preud'homme 2010-05-17 17:34:26 +02:00
parent 55d2d70b6e
commit 9af26178ba
1 changed files with 25 additions and 23 deletions

View File

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