Files
ftmemsim-valgrind/exp-drd/scripts/run-splash2
2008-06-19 16:14:30 +00:00

226 lines
11 KiB
Bash
Executable File

#!/bin/bash
########################
# Function definitions #
########################
source "$(dirname $0)/measurement-functions"
function run_test {
local tmp avg1 stddev1 avg2 stddev2 avg4 stddev4 p
tmp="/tmp/test-timing.$$"
rm -f "${tmp}"
p=1
test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg1 stddev1 vsz1 vszdev1 < "$tmp"
echo "Average time: ${avg1} +/- ${stddev1} seconds." \
" VSZ: ${vsz1} +/- ${vszdev1} KB"
p=2
test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg2 stddev2 vsz2 vszdev2 < "$tmp"
echo "Average time: ${avg2} +/- ${stddev2} seconds." \
" VSZ: ${vsz2} +/- ${vszdev2} KB"
p=4
test_output="${1}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
read avg4 stddev4 vsz4 vszdev4 < "$tmp"
echo "Average time: ${avg4} +/- ${stddev4} seconds." \
" VSZ: ${vsz4} +/- ${vszdev4} KB"
p=1
test_output="/dev/null" \
print_runtime_ratio ${avg1} ${stddev1} ${vsz1} ${vszdev1} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="/dev/null" \
print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-with-stack-var-4.out" \
print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
$VG --tool=exp-drd --check-stack-var=yes "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-without-stack-var-4.out" \
print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
$VG --tool=exp-drd --check-stack-var=no "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-helgrind-4.out" \
print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=helgrind "$@" -p${psep}${p} "${test_args}"
echo ''
rm -f "$tmp"
}
########################
# Script body #
########################
DRD_SCRIPTS_DIR="$(dirname $0)"
if [ "${DRD_SCRIPTS_DIR:0:1}" != "/" ]; then
DRD_SCRIPTS_DIR="$PWD/$DRD_SCRIPTS_DIR"
fi
SPLASH2="${DRD_SCRIPTS_DIR}/../splash2"
if [ ! -e "${SPLASH2}" ]; then
echo "Error: splash2 directory not found (${SPLASH2})."
exit 1
fi
if [ "$VG" = "" ]; then
VG="${DRD_SCRIPTS_DIR}/../../vg-in-place"
fi
if [ ! -e "$VG" ]; then
echo "Could not find $VG."
exit 1
fi
######################################################################################################################
# Meaning of the different colums:
# 1. SPLASH2 test name.
# 2. Execution time in seconds for native run with argument -p1.
# 3. Virtual memory size in KB for the native run with argument -p1.
# 4. Execution time in seconds for native run with argument -p2.
# 5. Virtual memory size in KB for the native run with argument -p2.
# 6. Execution time in seconds for native run with argument -p4.
# 7. Virtual memory size in KB for the native run with argument -p4.
# 8. Execution time ratio for --tool=none -p1 versus -p1.
# 9. Virtual memory size ratio for --tool=none -p1 versus -p1.
# 10. Execution time ratio for --tool=none -p4 versus -p4.
# 11. Virtual memory size ratio for --tool=none -p4 versus -p4.
# 12. Execution time ratio for --tool=exp-drd --check-stack-var=yes -p4 versus -p4.
# 13. Virtual memory size ratio for --tool=exp-drd --check-stack-var=yes -p4 versus -p4.
# 14. Execution time ratio for --tool=exp-drd --check-stack-var=no -p4 versus -p4.
# 15. Virtual memory size ratio for --tool=exp-drd --check-stack-var=no -p4 versus -p4.
# 16. Execution time ratio for --tool=helgrind -p4 versus -p4.
# 17. Virtual memory size ratio for --tool=helgrind -p4 versus -p4.
# 18. Execution time ratio for Intel Thread Checker -p4 versus -p4.
# 19. Execution time ratio for Intel Thread Checker -p4 versus -p4.
#
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#########################################################################################################################
# Results: native native native none none DRD DRD HG ITC ITC
# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
# .......................................................................................................................
# Cholesky 0.36 45867 0.25 55965 0.20 74944 8.9 2.08 18.5 1.66 171 1.96 123 2.07 52 3.09 239 82
# FFT 0.23 6 GB 0.14 6 GB 0.10 6 GB 7.3 1.01 14.9 1.00 111 1.01 74 1.01 2201 1.76 90 41
# LU, contiguous 0.95 16784 0.64 24984 0.43 41392 8.0 3.88 18.5 2.17 117 2.84 111 3.04 219 4.36 428 128
# LU, non-contiguous 1.11 16792 0.69 24984 0.41 41376 7.2 3.88 19.2 2.17 197 3.04 176 3.24 158 4.26 428 128
# Ocean, contiguous 24.53 918016 13.97 927732 9.28 945664 2.4 1.05 6.5 1.05 87 1.90 75 1.92 145 1.88 90 28
# Ocean, non-contiguous 0.36 32120 0.19 40320 0.17 56728 4.2 2.51 9.8 1.86 55 2.27 67 2.43 119 3.54 90 28
# Radiosity 4.73 56120 4.71 56120 4.71 56120 16.6 1.86 16.6 1.86 116 7.68 50 7.39 56 5.04 485 163
# Radix 4.98 279744 2.55 287936 1.36 304448 6.1 1.17 21.3 1.16 54 1.90 50 1.92 212 2.09 222 56
# Raytrace 2.77 320526 2.77 320526 2.77 320526 7.6 1.15 7.6 1.15 202 1.26 53 1.26 87 2.09 172 53
# Water-n2 0.19 17304 0.19 17304 0.19 17304 12.3 3.85 12.3 3.85 66 5.13 34 5.13 45 7.68 189 39
# Water-sp 0.20 10976 0.21 10976 0.21 10976 11.5 5.41 10.9 5.41 72 5.85 33 5.85 43 10.90 183 34
# .......................................................................................................................
# Hardware: Two quad-core Intel Xeon L5130, 1.6 GHz, 4 MB L2 cache, 16 GB RAM.
# Software: Ubuntu 8.04 server, 64-bit, gcc 4.3.1.
#########################################################################################################################
# Results: native native native none none DRD DRD HG ITC ITC
# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
# .......................................................................................................................
# Cholesky 0.29 45835 0.21 55933 4.70 96789 9.5 2.21 0.9 1.35 6 1.59 4 1.67 2 2.51 239 82
# FFT 0.19 6 GB 0.12 6 GB 0.12 6 GB 7.2 1.01 11.1 1.01 82 1.02 55 1.02 .... .... 90 41
# LU, contiguous 0.81 16752 0.54 24957 0.52 41365 7.6 4.27 12.2 2.33 80 3.00 76 3.20 149 4.51 428 128
# LU, non-contiguous 0.86 16760 0.47 24957 0.49 41352 6.9 4.26 12.4 2.33 138 3.20 127 3.40 108 4.42 428 128
# Ocean, contiguous 19.46 918016 12.59 927232 12.61 945664 2.4 1.06 6.5 1.06 53 1.92**47 1.93 86 1.88 90 28
# Ocean, non-contiguous 0.30 32088 0.19 40293 0.19 56696 4.0 2.71 6.8 1.97 38 2.43 47 2.57 84 3.66 90 28
# Radiosity 3.84 56088 3.84 56088 3.84 56088 16.3 1.98 16.4 1.98 112 7.80 49 7.51 55 5.16 485 163
# Radix 4.07 279680 2.12 287872 2.12 304427 6.0 1.20 11.5 1.18 29 1.92 27 1.94 141 2.12 222 56
# Raytrace 2.22 320192 2.19 ...... 2.20 ...... 7.4 1.17 7.4 1.17 165 1.28 54 1.28 92 2.11 172 53
# Water-n2 0.15 17272 0.10 33656 0.12 66432 12.4 4.22 16.1 1.84 ... .... .. .... .. .... 189 39
# Water-sp 0.18 10947 .... ..... .... ..... 10.4 0.58 11.1 6.00 ... .... .. .... .. .... 183 34
# .......................................................................................................................
# Hardware: dual-core Intel Xeon 5130, 2.0 GHz, 4 MB L2 cache, 4 GB RAM.
# Software: Ubuntu 7.10 server, 64-bit, gcc 4.3.1, xload -update 1 running.
#########################################################################################################################
# Results: native native native none none DRD DRD HG ITC ITC
# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
# .......................................................................................................................
# Cholesky 0.21 45565 0.14 55658 4.49 74667 9.05 2.31 0.64 1.80 4 2.11 3 2.22 1 3.28 239 82
# FFT 0.11 ..... 0.08 ..... 0.07 ..... .... .... .... .... 138 .... 66 .... 380 .... 90 41
# LU, contiguous 0.56 ..... 0.34 ..... 0.34 ..... .... .... .... .... 72 .... 68 .... 96 .... 428 128
# LU, non-contiguous 0.59 ..... 0.32 ..... 0.35 ..... .... .... .... .... 92 .... 109 .... 60 .... 428 128
# Ocean, contiguous 14.30 ..... 9.54 ..... 9.56 ..... .... .... .... .... 61 .... 48 .... 89 .... 90 28
# Ocean, non-contiguous 0.20 ..... 0.12 ..... 0.12 ..... .... .... .... .... 45 .... 51 .... 93 .... 90 28
# Radiosity 2.33 ..... 2.32 ..... 2.33 ..... .... .... .... .... 175 .... 61 .... 60 .... 485 163
# Radix 2.81 ..... 1.45 ..... 1.46 ..... .... .... .... .... 32 .... 29 .... 153 .... 222 56
# Raytrace 1.65 ..... 1.64 ..... 1.64 ..... .... .... .... .... 230 .... 55 .... 89 .... 172 53
# Water-n2 0.14 ..... 0.12 ..... 0.12 ..... .... .... .... .... 129 .... 35 .... 55 .... 189 39
# Water-sp 0.14 ..... 0.12 ..... 0.12 ..... .... .... .... .... 121 .... 36 .... 54 .... 183 34
# .......................................................................................................................
# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.
# Software: openSUSE 10.3, 64-bit, gcc 4.3.1, runlevel 5, X screensaver: blank
#########################################################################################################################
cache_size=$(get_cache_size)
log2_cache_size=$(log2 ${cache_size})
# Cholesky
(
cd ${SPLASH2}/codes/kernels/cholesky/inputs
for f in *Z
do
gzip -cd <$f >${f%.Z}
done
test_args=tk29.O run_test ../CHOLESKY -C$((cache_size))
)
# FFT
run_test ${SPLASH2}/codes/kernels/fft/FFT -t -l$((log2_cache_size/2)) -m18
# LU, contiguous blocks.
run_test ${SPLASH2}/codes/kernels/lu/contiguous_blocks/LU -n1024
# LU, non-contiguous blocks.
run_test ${SPLASH2}/codes/kernels/lu/non_contiguous_blocks/LU -n1024
# Ocean
run_test ${SPLASH2}/codes/apps/ocean/contiguous_partitions/OCEAN -n2050
run_test ${SPLASH2}/codes/apps/ocean/non_contiguous_partitions/OCEAN -n258
# Radiosity.
run_test ${SPLASH2}/codes/apps/radiosity/RADIOSITY -batch -room
# Radix
run_test ${SPLASH2}/codes/kernels/radix/RADIX -n $((2**24))
# Raytrace
if false; then
(
cd ${SPLASH2}/codes/apps/raytrace/inputs
rm -f *.env *.geo *.rl
for f in *Z
do
gzip -cd <$f >${f%.Z}
done
test_args=balls4.env psep=' ' run_test ../RAYTRACE
)
fi
# Water-n2
(
cd ${SPLASH2}/codes/apps/water-nsquared
test_input=${DRD_SCRIPTS_DIR}/run-splash2-water-input psep=' ' run_test ./WATER-NSQUARED
)
# Water-sp
(
cd ${SPLASH2}/codes/apps/water-spatial
test_input=${DRD_SCRIPTS_DIR}/run-splash2-water-input psep=' ' run_test ./WATER-SPATIAL
)
# Local variables:
# compile-command: "./run-splash2"
# End: