diff options
| author | Joshua Bakita <jbakita@cs.unc.edu> | 2020-10-22 00:08:12 -0400 |
|---|---|---|
| committer | Joshua Bakita <jbakita@cs.unc.edu> | 2020-10-22 00:08:12 -0400 |
| commit | 3b0aa125061b362b23ecf66afe8319e3a268c874 (patch) | |
| tree | 9323b85d5a3a0d14e33a28caa9ffc3b8ce7225be /run_all_tacle.sh | |
| parent | edb491490ccd0cae4bd28ca9c9a7e095a47c749b (diff) | |
Add pair benchmarking and isolation specification into run_bench.sh
This allows `run_bench.sh` to replace all previous general paired
benchmarking scripts. See `run_everything.sh` for an example of how
to use the new script.
This also fixes two critical bugs present in the old scripts:
1. The cpus_list was incorrectly set for resctrl when running
synchronous pair timing with L2+L3 isolation (i). Each write
to that file replaces the previous contents, and it was previously
written once for each core. This prevented the entire 1st core
from using any L3 cache.
2. The competing task list was indexed improperly in the asynchronous
pair timing script. This caused the competing task to always be
identical to the task being profiled.
These issues combine to imply that in the rejected RTSS'20 paper:
- All Level-C SMT timing data is suspect
- Level-A and -B SMT timing data with L2+L3 isolation (i) is
wildly optimistic
Diffstat (limited to 'run_all_tacle.sh')
| -rwxr-xr-x | run_all_tacle.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/run_all_tacle.sh b/run_all_tacle.sh new file mode 100755 index 0000000..c0f07cc --- /dev/null +++ b/run_all_tacle.sh | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # Copyright 2020 Joshua Bakita | ||
| 3 | # Runs TACLeBench in every configuration needed | ||
| 4 | # for the paper and schedulability studies | ||
| 5 | |||
| 6 | maxJobs=$1 | ||
| 7 | runID=$2 | ||
| 8 | |||
| 9 | if [ $# -lt 2 ]; then | ||
| 10 | echo "Usage $0 <number of iterations> <run ID>" | ||
| 11 | exit | ||
| 12 | fi | ||
| 13 | date | ||
| 14 | |||
| 15 | # Run the pairs baseline and some comparisons to examine the effect of less cache | ||
| 16 | cd baseline | ||
| 17 | make all -j32 | ||
| 18 | # Full L3, full L2 - xi is the baseline for the pairs | ||
| 19 | baseXI=baseline/$(date +"%b%d-%H")-c-xi-$runID.txt | ||
| 20 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I xi $runID | ||
| 21 | # Half L3, full L2 - i3 sees effect of half L3 | ||
| 22 | baseI3=baseline/$(date +"%b%d-%H")-c-i3-$runID.txt | ||
| 23 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I i3 $runID | ||
| 24 | # Half L3, half L2 - additional effect of half L2 | ||
| 25 | baseI=baseline/$(date +"%b%d-%H")-c-i-$runID.txt | ||
| 26 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b tacleNames.txt -B -I i $runID | ||
| 27 | date | ||
| 28 | |||
| 29 | # Run the Level-A/-B pairs | ||
| 30 | cd ../all_pairs | ||
| 31 | make all -j32 | ||
| 32 | # No cache isolation | ||
| 33 | pairXI=all_pairs/$(date +"%b%d-%H")-c-xi-$runID.txt | ||
| 34 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi $runID | ||
| 35 | # Shared L2, split L3 | ||
| 36 | pairI3=all_pairs/$(date +"%b%d-%H")-c-i3-$runID.txt | ||
| 37 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i3 $runID | ||
| 38 | # Split L2, split L3 | ||
| 39 | pairI=all_pairs/$(date +"%b%d-%H")-c-i-$runID.txt | ||
| 40 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i $runID | ||
| 41 | date | ||
| 42 | |||
| 43 | # Run the Level-C pairs | ||
| 44 | cd ../baseline | ||
| 45 | pairC=baseline/$(date +"%b%d-%H")-c-xi-async-$runID.txt | ||
| 46 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi -A $runID | ||
| 47 | date | ||
| 48 | |||
| 49 | echo "==== DONE ====" | ||
| 50 | echo "Results are in:" | ||
| 51 | echo "- $baseXI" | ||
| 52 | echo "- $baseI3" | ||
| 53 | echo "- $baseI" | ||
| 54 | echo "- $pairXI" | ||
| 55 | echo "- $pairI3" | ||
| 56 | echo "- $pairI" | ||
| 57 | echo "- $pairC" | ||
| 58 | |||
