base=$(cd $(dirname $0); pwd)
for csv; do
- core="any core"
sed 1d $csv | cut -d, -f1 | sort | uniq | while IFS=$'\n' read title; do
- name=$($base/getname.sh "$title")
+ test=$($base/getname.sh "$title")
- output=$name.pdf
+ for dcore in 0 1 2; do
- awk -F, '$1 == "'"$title"'" { sub (/[^,]*,/, ""); gsub (/,/, " "); print }' $csv > $name.tab
+ name=$test-${dcore}k
- cat $base/candles.gp | \
- m4 -D CORE="$core" -D DATA="$name.tab" -D TITLE="$title" | \
- gnuplot > "$output"
+ case "$dcore" in
+ 0) core="any core";;
+ 1) core="1 core";;
+ 2) core="2 cores";;
+ esac
+
+ awk -F, '$1 == "'"$title"'" && $2 == '$dcore' { sub (/[^,]*,/, ""); gsub (/,/, " "); print }' $csv > $name.tab
+ if [ -s $name.tab ]; then
+ cat $base/candles.gp | \
+ m4 -D CORE="$core" -D DATA="$name.tab" -D TITLE="$title" | \
+ gnuplot > $name.pdf
+ else
+ rm -f $name.tab
+ fi
+ done
done
done
for tab; do
- test=$(echo $tab | sed 's/.tab//')
+ test=$(echo $tab | awk -F'[.-]' '{ print $1 }')
+ dcore=$(echo $tab | awk -F'[.-]' '{ print $2 }' | sed 's/k//')
+
title=$($base/getname.sh -r $test)
+ case $dcore in
+ 0) core="No dedicated core";;
+ 1) core="1 dedicated core";;
+ 2) core="1 dedicated cores";;
+ esac
- echo "<h2>$title</h2>"
+ echo "<h2>$title - $core</h2>"
echo "<h3>Statistic summary</h3>"
echo "<table border=\"1\" cellpadding=\"5\" cellspacing=\"2\" width=\"100%\">"
echo "<thead><tr><th width=\"12%\">Load<br>(%)</th><th width=\"12%\">Minimum<br>(us)</th><th width=\"12%\">Average<br>(us)</th><th width=\"12%\">Maximun<br>(us)</th><th width=\"12%\">Standard Dev.<br>(us)</th><th width=\"12%\">25th %<br>(us)</th><th width=\"12%\">Median<br>(us)</th><th width=\"12%\">75th %<br>(us)</th></tr></thead>"
echo "<tbody>"
- awk '{ printf "<tr>"; for (i=0; i<NF; i++) printf "<td>%s</td>", $(i+1); printf "</tr>\n" }' $tab
+ awk '{ printf "<tr>"; for (i=1; i<NF; i++) printf "<td>%s</td>", $(i+1); printf "</tr>\n" }' $tab
echo "</tbody>"
echo "</table>"
- echo "<div><a href=\"$test.pdf\"><img src=\"$test.png\" width=\"80%\"/></a></div>"
+ echo "<div><a href=\"$test-${dcore}k.pdf\"><img src=\"$test-${dcore}k.png\" width=\"80%\"/></a></div>"
for load in $(cat $tab | cut -f1 -d\ ); do
echo "<h3>Measures with load of $load%</h3>"
echo "<div>"
- echo "<a href=\"$test-$load%-raw.pdf\"><img src=\"$test-$load%-raw.png\" width=\"49%\"/></a>"
- echo "<a href=\"$test-$load%-hist.pdf\"><img src=\"$test-$load%-hist.png\" width=\"49%\"/></a>"
+ echo "<a href=\"$test-${dcore}k-${load}%-raw.pdf\"><img src=\"$test-${dcore}k-${load}%-raw.png\" width=\"49%\"/></a>"
+ echo "<a href=\"$test-${dcore}k-${load}%-hist.pdf\"><img src=\"$test-${dcore}k-${load}%-hist.png\" width=\"49%\"/></a>"
echo "</div>"
done
title=$(awk '/Test:/ { sub(/[^:]*: /, ""); print}' $log)
core=$(awk -F: '/Dedicated core/ { print ($2 == 0) ? "any core" : $2 " core" ($2 > 1 ? "s" : "") }' $log)
- load=$(echo $data | sed 's/.*-\([0-9]*\)%.*/\1%/')
+ load=$(awk '/CPU load/ { print $3 }' $log)
output=$(echo $data | sed 's/\.dat/-raw.pdf/')
cat $base/rawmeasures.gp | \
BEGIN {
OFS=","
- #print "Test", "Load", "Minimum (us)", "Average (us)", "Maximun (us)", "Standard Dev. (us)", "25th % (us)", "Median (us)", "75th % (us)"
+ if (!nohead) {
+ print "Test", "Dedicated core(s)", "Load (%)", "Minimum (us)", "Average (us)", "Maximun (us)", "Standard Dev. (us)", "25th % (us)", "Median (us)", "75th % (us)"
+ }
}
/Test:/ {
{ sub (/us$/, "") }
+/Dedicated/ { dcore=$3 }
+/CPU load/ { load=$3 }
/Minimum/ { min=$3 }
/Maximum/ { max=$3 }
/Average/ { avg=$3 }
/75th/ { p75=$4 }
/Histogram/ {
- print test, COMMENT, min, avg, max, std, p25, med, p75
+ print test, dcore, load, min, avg, max, std, p25, med, p75
}
-# for p in 0 100; do ./gettable.awk -v COMMENT=$p% test-$p%.log; done > result.csv
base=$(cd $(dirname $0); pwd)
-echo "Test,Load (%),Minimum (us),Average (us),Maximun (us),Standard Dev. (us),25th % (us),Median (us),75th % (us)"
+awk '/nohead/ {getline; sub(/print/, ""); gsub (/ *"/, ""); print}' $base/gettable.awk
nbcpu=$(grep -c processor /proc/cpuinfo)
-for t in *.exe; do
- t=$(echo $t | sed 's/\.exe//');
- for k in $(seq 0 $nbcpu); do
- p=$(expr $k \* 100 / $nbcpu)
- f=$t-$p%.log
- [ -f $f ] && awk -f $base/gettable.awk -v COMMENT=$p $f
+for exe in *.exe; do
+ test=$(echo $exe | sed 's/\.exe//');
+ for core in $(seq 0 2); do
+ for cpu in $(seq 0 $nbcpu); do
+ load=$(expr $cpu \* 100 / $nbcpu)
+ name=${test}-${core}k-${load}%
+ [ -f $name.log ] && awk -f $base/gettable.awk -v nohead=1 $name.log
+ done
done
done
#!/bin/sh
+nbcpu=$(grep -c processor /proc/cpuinfo)
+
run() {
- cpu=$1
- load=$2
+ dcore=$1
+ lcpu=$2
+ nbcpu=$3
+ load=$(expr $lcpu \* 100 / $nbcpu)
for exe in *.exe; do
test=$(echo $exe | sed 's/\.exe//')
+ name=$test-${dcore}k-${load}%
echo "\033[0;1mTest $test\033[0;0m"
- ./getinfo.sh | tee $test-$load.log
- { ./$exe -d 1 -n 10000 -s -o $test-$load.dat | tee -a $test-$load.log; \
+ ./getinfo.sh | tee $name.log
+ echo "CPU load: $load% ($lcpu/$nbcpu)" | tee -a $name.log
+ { ./$exe -d 1 -k $dcore -n 10000 -s -o $name.dat | tee -a $name.log; \
kill -2 $(ps -e | awk '/[l]oad/ || /[s]leep/ { print $1 }') 2>/dev/null; } &
- ./load -n $cpu >/dev/null
+ ./load -n $lcpu >/dev/null
echo "Cleaning..."
sleep 1
done
touch purge
rm -f purge *.log *.dat
-nbcpu=$(grep -c processor /proc/cpuinfo)
-for k in $(seq 0 $nbcpu); do
- p=$(expr $k \* 100 / $nbcpu)
- run $k $p%
+for d in 0 1 2; do
+ for c in $(seq 0 $nbcpu); do
+ run $d $c $nbcpu
+ done
done