blob: cdfc3993b720b845575b41bbf7600fba83257b32 [file] [log] [blame]
bart8785c122008-05-29 08:34:27 +00001#!/bin/bash
2
3########################
4# Function definitions #
5########################
6
7# Read a stream of numbers from stdin (one per line), and print the average
8# and standard deviation.
9function avgstddev {
10 awk '{n++;sum+=$1;sumsq+=$1*$1}END{print sum/n,sqrt(sumsq/n-sum*sum/n/n)}'
11}
12
13function run_test {
14 local tmp avg1=1 stddev1=1 avg2=1 stddev2=1
15
16 tmp="/tmp/test-timing.$$"
17 echo "$@"
18 for ((i=0;i<3;i++))
19 do
20 /usr/bin/time --format="%e" "$@" 2>&1 | tail -n 1
21 done | avgstddev > "$tmp"
22 read avg1 stddev1 < "$tmp"
23 echo "Average time: ${avg1} +/- ${stddev1} seconds"
24
25 echo "$VG --tool=exp-drd $@"
26 for ((i=0;i<3;i++))
27 do
28 /usr/bin/time --format="%e" $VG --tool=exp-drd "$@" 2>&1 | tail -n 1
29 done | avgstddev > "$tmp"
30 read avg2 stddev2 < "$tmp"
31 echo "Average time: ${avg2} +/- ${stddev2} seconds"
32
33 awk "END{print "'"'"Ratio ="'"'", ${avg2}/${avg1}, "'"'"+/-"'"'", ${avg2}/${avg1}*(${stddev1}/${avg1}+${stddev2}/${avg2})}" </dev/null
34
35 echo ''
36
37 rm -f "$tmp"
38}
39
40
41# Script body
42
43if [ ! -e splash2 ]; then
44 echo "Error: splash2 directory not found."
45 exit 1
46fi
47
48if [ "$VG" = "" ]; then
49 VG=../vg-in-place
50fi
51
52if [ ! -e "$VG" ]; then
53 echo "Could not find $VG."
54 exit 1
55fi
56
57# run_test splash2/codes/apps/barnes/BARNES
58
59# lu, contiguous blocks: slowdown about 41 (-p1 -n1024). ITC: 230.
60run_test splash2/codes/kernels/lu/contiguous_blocks/LU -p1 -n1024
61run_test splash2/codes/kernels/lu/contiguous_blocks/LU -p2 -n1024
62
63# lu, non-contiguous blocks: slowdown about 37 (-p1 -n1024). ITC: 230.
64run_test splash2/codes/kernels/lu/non_contiguous_blocks/LU -p1 -n1024
65run_test splash2/codes/kernels/lu/non_contiguous_blocks/LU -p2 -n1024
66
67# radiosity: slowdown about 999 because of the large number of mutex operations.
68# ITC: 420.
69run_test splash2/codes/apps/radiosity/RADIOSITY -p1 -batch -room
70run_test splash2/codes/apps/radiosity/RADIOSITY -p2 -batch -room