|
1 | 1 | #!/bin/bash |
2 | 2 |
|
| 3 | +set -e |
| 4 | + |
3 | 5 | # Temporary until merged to master |
4 | 6 | wget -O sirun.tar.gz https://github.com/DataDog/sirun/releases/download/v0.1.10/sirun-v0.1.10-x86_64-unknown-linux-musl.tar.gz \ |
5 | 7 | && tar -xzf sirun.tar.gz \ |
@@ -34,46 +36,49 @@ echo "using Node.js ${VERSION}" |
34 | 36 | CPU_AFFINITY="${CPU_START_ID:-24}" # reset for each node.js version |
35 | 37 | SPLITS=${SPLITS:-1} |
36 | 38 | GROUP=${GROUP:-1} |
37 | | -BENCH_COUNT=0 |
38 | 39 |
|
| 40 | +BENCH_COUNT=0 |
39 | 41 | for D in *; do |
40 | 42 | if [ -d "${D}" ]; then |
41 | | - BENCH_COUNT=$(($BENCH_COUNT+1)) |
| 43 | + cd "${D}" |
| 44 | + variants="$(node ../get-variants.js)" |
| 45 | + for V in $variants; do BENCH_COUNT=$(($BENCH_COUNT+1)); done |
| 46 | + cd .. |
42 | 47 | fi |
43 | 48 | done |
44 | 49 |
|
45 | | -# over count so that it can be divided by bash as an integer |
46 | | -BENCH_COUNT=$(($BENCH_COUNT+$BENCH_COUNT%$SPLITS)) |
47 | | -GROUP_SIZE=$(($BENCH_COUNT/$SPLITS)) |
48 | | - |
49 | | -run_all_variants () { |
50 | | - local variants="$(node ../get-variants.js)" |
51 | | - |
52 | | - node ../squash-affinity.js |
53 | | - |
54 | | - for V in $variants; do |
55 | | - echo "running ${1}/${V} in background, pinned to core ${CPU_AFFINITY}..." |
56 | | - |
57 | | - export SIRUN_VARIANT=$V |
58 | | - |
59 | | - (time node ../run-one-variant.js >> ../results.ndjson && echo "${1}/${V} finished.") & |
60 | | - ((CPU_AFFINITY=CPU_AFFINITY+1)) |
61 | | - done |
62 | | -} |
| 50 | +GROUP_SIZE=$(($(($BENCH_COUNT+$SPLITS-1))/$SPLITS)) # round up |
63 | 51 |
|
64 | 52 | BENCH_INDEX=0 |
65 | 53 | BENCH_END=$(($GROUP_SIZE*$GROUP)) |
66 | 54 | BENCH_START=$(($BENCH_END-$GROUP_SIZE)) |
67 | 55 |
|
| 56 | +if [[ ${GROUP_SIZE} -gt 24 ]]; then |
| 57 | + echo "Group size ${GROUP_SIZE} is larger than available number of CPU cores on Benchmarking Platform machines (24 cores)" |
| 58 | + exit 1 |
| 59 | +fi |
| 60 | + |
68 | 61 | for D in *; do |
69 | 62 | if [ -d "${D}" ]; then |
70 | | - if [[ ${BENCH_INDEX} -ge ${BENCH_START} && ${BENCH_INDEX} -lt ${BENCH_END} ]]; then |
71 | | - cd "${D}" |
72 | | - run_all_variants $D |
73 | | - cd .. |
74 | | - fi |
| 63 | + cd "${D}" |
| 64 | + variants="$(node ../get-variants.js)" |
| 65 | + |
| 66 | + node ../squash-affinity.js |
| 67 | + |
| 68 | + for V in $variants; do |
| 69 | + if [[ ${BENCH_INDEX} -ge ${BENCH_START} && ${BENCH_INDEX} -lt ${BENCH_END} ]]; then |
| 70 | + echo "running $((BENCH_INDEX+1)) out of ${BENCH_COUNT}, ${D}/${V} in background, pinned to core ${CPU_AFFINITY}..." |
| 71 | + |
| 72 | + export SIRUN_VARIANT=$V |
| 73 | + |
| 74 | + (time node ../run-one-variant.js >> ../results.ndjson && echo "${D}/${V} finished.") & |
| 75 | + ((CPU_AFFINITY=CPU_AFFINITY+1)) |
| 76 | + fi |
| 77 | + |
| 78 | + BENCH_INDEX=$(($BENCH_INDEX+1)) |
| 79 | + done |
75 | 80 |
|
76 | | - BENCH_INDEX=$(($BENCH_INDEX+1)) |
| 81 | + cd .. |
77 | 82 | fi |
78 | 83 | done |
79 | 84 |
|
|
0 commit comments