1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#!/bin/bash
2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov########################
4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Function definitions #
5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov########################
6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovsource "$(dirname $0)/measurement-functions"
8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfunction run_test {
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  local tmp avg1 stddev1 avg2 stddev2 avg4 stddev4 p
11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  tmp="/tmp/test-timing.$$"
13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  rm -f "${tmp}"
15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=1
16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  read avg1 stddev1 vsz1 vszdev1 rest < "$tmp"
18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo "Average time: ${avg1} +/- ${stddev1} seconds." \
19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov       " VSZ: ${vsz1} +/- ${vszdev1} KB"
20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  if [ "${rest}" != "" ]; then
22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    echo "Internal error ($rest)"
23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    exit 1
24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  fi
25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  rm -f "${tmp}"
27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=2
28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  read avg2 stddev2 vsz2 vszdev2 rest < "$tmp"
30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo "Average time: ${avg2} +/- ${stddev2} seconds." \
31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov       " VSZ: ${vsz2} +/- ${vszdev2} KB"
32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  if [ "${rest}" != "" ]; then
34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    echo "Internal error ($rest)"
35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    exit 1
36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  fi
37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  rm -f "${tmp}"
39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  read avg4 stddev4 vsz4 vszdev4 rest < "$tmp"
42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo "Average time: ${avg4} +/- ${stddev4} seconds." \
43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov       " VSZ: ${vsz4} +/- ${vszdev4} KB"
44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  rm -f "$tmp"
45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  if [ "${rest}" != "" ]; then
47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    echo "Internal error ($rest)"
48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    exit 1
49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  fi
50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=1
52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="/dev/null" \
53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg1}" "${stddev1}" "${vsz1}" "${vszdev1}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="/dev/null" \
57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-drd-with-stack-var-4.out" \
61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    "$VG" --tool=drd --first-race-only=yes --check-stack-var=yes \
63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --drd-stats=yes "$@" -p${psep}${p} "${test_args}"
64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-drd-without-stack-var-4.out" \
67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    "$VG" --tool=drd --first-race-only=yes --check-stack-var=no \
69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    --drd-stats=yes "$@" -p${psep}${p} "${test_args}"
70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-helgrind-4-none.out" \
73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=helgrind --history-level=none "$@" -p${psep}${p} "${test_args}"
74436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
75436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
76436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-helgrind-4-approx.out" \
77436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=helgrind --history-level=approx "$@" -p${psep}${p} "${test_args}"
78436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
79436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  p=4
80436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_output="${1}-helgrind-4-full.out" \
81436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=helgrind --history-level=full "$@" -p${psep}${p} "${test_args}"
82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
83436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo ''
84436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}
85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
86436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
87436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov########################
88436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Script body          #
89436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov########################
90436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDRD_SCRIPTS_DIR="$(dirname $0)"
92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovif [ "${DRD_SCRIPTS_DIR:0:1}" != "/" ]; then
93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  DRD_SCRIPTS_DIR="$PWD/$DRD_SCRIPTS_DIR"
94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfi
95436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
96436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovSPLASH2="${DRD_SCRIPTS_DIR}/../splash2"
97436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovif [ ! -e "${SPLASH2}" ]; then
98436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo "Error: splash2 directory not found (${SPLASH2})."
99436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  exit 1
100436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfi
101436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
102436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovif [ "$VG" = "" ]; then
103436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  VG="${DRD_SCRIPTS_DIR}/../../vg-in-place"
104436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfi
105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovif [ ! -e "$VG" ]; then
107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  echo "Could not find $VG."
108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  exit 1
109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfi
110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
111436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov######################################################################################################################
112436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Meaning of the different colums:
113436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  1. SPLASH2 test name.
114436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  2. Execution time in seconds for native run with argument -p1.
115436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  3. Virtual memory size in KB for the native run with argument -p1.
116436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  4. Execution time in seconds for native run with argument -p2.
117436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  5. Virtual memory size in KB for the native run with argument -p2.
118436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  6. Execution time in seconds for native run with argument -p4.
119436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  7. Virtual memory size in KB for the native run with argument -p4.
120436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  8. Execution time ratio for --tool=none -p1 versus -p1.
121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#  9. Virtual memory size ratio for --tool=none -p1 versus -p1.
122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 10. Execution time ratio for --tool=none -p4 versus -p4.
123436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 11. Virtual memory size ratio for --tool=none -p4 versus -p4.
124436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 12. Execution time ratio for --tool=drd --check-stack-var=yes -p4 versus -p4.
125436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 13. Virtual memory size ratio for --tool=drd --check-stack-var=yes -p4 versus -p4.
126436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 14. Execution time ratio for --tool=drd --check-stack-var=no -p4 versus -p4.
127436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 15. Virtual memory size ratio for --tool=drd --check-stack-var=no -p4 versus -p4.
128436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 16. Execution time ratio for --tool=helgrind --history-level=none -p4 versus -p4.
129436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 17. Virtual memory size ratio for --tool=helgrind --history-level=none -p4 versus -p4.
130436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 18. Execution time ratio for --tool=helgrind --history-level=approx -p4 versus -p4.
131436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 19. Virtual memory size ratio for --tool=helgrind --history-level=approx -p4 versus -p4.
132436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 20. Execution time ratio for --tool=helgrind --history-level=full -p4 versus -p4.
133436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 21. Virtual memory size ratio for --tool=helgrind --history-level=full -p4 versus -p4.
134436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 22. Execution time ratio for Intel Thread Checker -p4 versus -p4.
135436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# 23. Execution time ratio for Intel Thread Checker -p4 versus -p4.
136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#
137436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Notes:
138436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# - Both Helgrind and DRD use a granularity of one byte for data race detection.
139436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# - Helgrind does detect data races on stack variables. DRD only detects
140436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   data races on stack variables with --check-stack-var=yes.
141436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# - The ITC tests have been run on a 4-way 2.5 GHz Pentium 4 workstation, most
142436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   likely running a 32-bit OS. Not yet clear to me: which OS ? Which
143436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   granularity does ITC use ? And which m4 macro's have been used by ITC as
144436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   implementation of the synchronization primitives ?
145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#
146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#     1                    2     3      4      5      6     7     8    9   10   11   12  13     14  15    16    17  18    19  20    21   22   23
147436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov################################################################################################################################################
148436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Results:                native       native       native       none      none       DRD        DRD      HG        HG        HG         ITC ITC
149436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#                         -p1          -p2          -p4           -p1       -p4       -p4       -p4+f     -p4       -p4       -p4      -p4 -p4+f
150436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# ..............................................................................................................................................
151436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Cholesky                0.11  12016  0.06  22016  0.55  41328 10.3  4.92  1.7 2.14   15 2.61    8 2.61   10  3.96  10  3.96  15  6.14  239  82
152436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# FFT                     0.02   6692  0.02  14888  0.02  31621 17.0  8.01 20.0 2.48  114 3.15   64 3.28   81  4.52  81  4.52 116  5.56   90  41
153436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# LU, contiguous          0.08   4100  0.05  12304  0.06  28712 11.1 12.44 18.5 2.64  104 3.18   70 3.18   87  4.84  89  4.84 118  5.55  428 128
154436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Ocean, contiguous       0.23  16848  0.19  25384  0.23  42528  6.3  3.78  8.3 2.11   87 2.82   62 4.02   71  3.75  71  3.75 195  5.96   90  28
155436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Radix                   0.21  15136  0.14  23336  0.15  39728 12.6  4.10 22.3 2.19   61 2.87   41 2.94   52  4.03  52  4.03  85  6.13  222  56
156436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Raytrace                0.63 207104  0.49 215296  0.49 231680  8.9  1.23 12.9 1.20  385 1.38   86 2.10  158  3.70 160  3.70 222  4.15  172  53
157436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Water-n2                0.18  10696  0.09  27072  0.11  59832 12.5  5.46 26.7 1.80 3092 3.03  263 3.06   92  3.28  92  3.28  92  3.55  189  39
158436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Water-sp                0.20   4444  0.15  13536  0.10  30269 10.6 11.56 27.0 2.52  405 3.29   69 3.42   95  4.59  95  4.59  97  4.73  183  34
159436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# ..............................................................................................................................................
160436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# geometric mean          0.14  13024  0.10  25669  0.14  47655 10.8  5.26 13.5 2.08  161 2.71   59 3.03   66  4.05  66  4.05  95  5.13  180  51
161436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# ..............................................................................................................................................
162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.                                                        
163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Software: openSUSE 11.0 (64-bit edition), runlevel 3, kernel 2.6.30.1, gcc 4.3.1, 32 bit SPLASH-2 executables, valgrind trunk r10648.
164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov################################################################################################################################################
165436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
166436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov####
167436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Notes:
168436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# - The ITC performance numbers in the above table originate from table 1 in
169436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   the following paper:
170436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   Paul Sack, Brian E. Bliss, Zhiqiang Ma, Paul Petersen, Josep Torrellas,
171436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   Accurate and efficient filtering for the Intel thread checker race
172436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   detector, Proceedings of the 1st workshop on Architectural and system
173436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   support for improving software dependability, San Jose, California,
174436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   2006. Pages: 34 - 41.
175436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# - The input parameters for benchmarks below originate from table 1 in the
176436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   following paper:
177436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   The SPLASH-2 programs: characterization and methodological considerations
178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   Woo, S.C.; Ohara, M.; Torrie, E.; Singh, J.P.; Gupta, A.
179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   1995. Proceedings of the 22nd Annual International Symposium on Computer
180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   Architecture, 22-24 Jun 1995, Page(s): 24 - 36.
181436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#   ftp://www-flash.stanford.edu/pub/splash2/splash2_isca95.ps.Z
182436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov####
183436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
184436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovcache_size=$(get_cache_size)
185436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovlog2_cache_size=$(log2 ${cache_size})
186436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
187436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Cholesky
188436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(
189436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  cd ${SPLASH2}/codes/kernels/cholesky/inputs
190436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  for f in *Z
191436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  do
192436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    gzip -cd <$f >${f%.Z}
193436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  done
194436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_args=tk15.O run_test ../CHOLESKY -C$((cache_size))
195436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov)
196436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
197436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# FFT
198436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovrun_test ${SPLASH2}/codes/kernels/fft/FFT -t -l$((log2_cache_size/2)) -m16
199436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
200436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# LU, contiguous blocks.
201436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovrun_test ${SPLASH2}/codes/kernels/lu/contiguous_blocks/LU -n512
202436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
203436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# LU, non-contiguous blocks.
204436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#run_test ${SPLASH2}/codes/kernels/lu/non_contiguous_blocks/LU -n512
205436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
206436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Ocean
207436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovrun_test ${SPLASH2}/codes/apps/ocean/contiguous_partitions/OCEAN -n258
208436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#run_test ${SPLASH2}/codes/apps/ocean/non_contiguous_partitions/OCEAN -n258
209436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
210436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Radiosity. Runs fine on a 32-bit OS, but deadlocks on a 64-bit OS. Not clear to me why.
211436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovif [ $(uname -p) = "i686" ]; then
212436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  psep=' ' run_test ${SPLASH2}/codes/apps/radiosity/RADIOSITY -batch -room -ae 5000.0 -en 0.050 -bf 0.10
213436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovfi
214436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
215436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Radix
216436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovrun_test ${SPLASH2}/codes/kernels/radix/RADIX -n$((2**20)) -r1024
217436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
218436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Raytrace
219436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(
220436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  cd ${SPLASH2}/codes/apps/raytrace/inputs
221436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  rm -f *.env *.geo *.rl
222436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  for f in *Z
223436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  do
224436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    gzip -cd <$f >${f%.Z}
225436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  done
226436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  cd ..
227436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_args=inputs/car.env psep='' run_test ./RAYTRACE -m64
228436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov)
229436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
230436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Water-n2
231436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(
232436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  cd ${SPLASH2}/codes/apps/water-nsquared
233436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_input=${DRD_SCRIPTS_DIR}/run-splash2-water-input psep=' ' run_test ./WATER-NSQUARED
234436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov)
235436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
236436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Water-sp
237436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(
238436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  cd ${SPLASH2}/codes/apps/water-spatial
239436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  test_input=${DRD_SCRIPTS_DIR}/run-splash2-water-input psep=' ' run_test ./WATER-SPATIAL
240436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov)
241436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
242436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
243436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
244436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# Local variables:
245436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# compile-command: "./run-splash2"
246436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# End:
247