diff options
| -rwxr-xr-x | run_all_sd-vbs.sh | 67 | ||||
| -rwxr-xr-x | run_all_tacle.sh | 10 | ||||
| -rwxr-xr-x | run_bench.sh | 8 |
3 files changed, 78 insertions, 7 deletions
diff --git a/run_all_sd-vbs.sh b/run_all_sd-vbs.sh new file mode 100755 index 0000000..1f5948d --- /dev/null +++ b/run_all_sd-vbs.sh | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # Copyright 2020 Joshua Bakita | ||
| 3 | # Runs SD-VBS 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 | if [[ "$EUID" != 0 ]]; then | ||
| 14 | echo "You need to be root to enable spatial isolation!" | ||
| 15 | exit | ||
| 16 | fi | ||
| 17 | date | ||
| 18 | |||
| 19 | # Run the pairs baseline and some comparisons to examine the effect of less cache | ||
| 20 | echo "Building benchmarks in unpaired configuration..." | ||
| 21 | cd SD-VBS/benchmarks | ||
| 22 | make compile -j30 > /dev/null # Suppress noisy output | ||
| 23 | cd .. | ||
| 24 | echo "Done. Running experiments..." | ||
| 25 | # Full L3, full L2 - xi is the baseline for the pairs | ||
| 26 | baseXI=SD-VBS/$(date +"%b%d-%H")-c-xi-$runID.txt | ||
| 27 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I xi $runID | ||
| 28 | # Half L3, full L2 - i3 sees effect of half L3 | ||
| 29 | baseI3=SD-VBS/$(date +"%b%d-%H")-c-i3-$runID.txt | ||
| 30 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I i3 $runID | ||
| 31 | # Half L3, half L2 - additional effect of half L2 | ||
| 32 | baseI=SD-VBS/$(date +"%b%d-%H")-c-i-$runID.txt | ||
| 33 | echo "" | ../run_bench.sh -m base -p 15 -l $maxJobs -b sd-vbsNames.txt -B -I i $runID | ||
| 34 | date | ||
| 35 | |||
| 36 | # Run the Level-C pairs | ||
| 37 | pairC=SD-VBS/$(date +"%b%d-%H")-c-xi-async-$runID.txt | ||
| 38 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I xi -A $runID | ||
| 39 | date | ||
| 40 | |||
| 41 | # Run the Level-A/-B pairs | ||
| 42 | echo "Building benchmarks in paired configuration..." | ||
| 43 | cd benchmarks | ||
| 44 | make CFLAGS=-DPAIRED compile -j30 > /dev/null # Suppress noisy output | ||
| 45 | cd .. | ||
| 46 | echo "Done. Continuing experiments..." | ||
| 47 | # No cache isolation | ||
| 48 | pairXI=SD-VBS/$(date +"%b%d-%H")-c-xi-$runID"-A.txt and -B.txt" | ||
| 49 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I xi $runID | ||
| 50 | # Shared L2, split L3 | ||
| 51 | pairI3=SD-VBS/$(date +"%b%d-%H")-c-i3-$runID"-A.txt and -B.txt" | ||
| 52 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I i3 $runID | ||
| 53 | # Split L2, split L3 | ||
| 54 | pairI=SD-VBS/$(date +"%b%d-%H")-c-i-$runID"-A.txt and -B.txt" | ||
| 55 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b sd-vbsNames.txt -B -I i $runID | ||
| 56 | date | ||
| 57 | |||
| 58 | echo "==== DONE ====" | ||
| 59 | echo "Results are in:" | ||
| 60 | echo "- $baseXI" | ||
| 61 | echo "- $baseI3" | ||
| 62 | echo "- $baseI" | ||
| 63 | echo "- $pairXI" | ||
| 64 | echo "- $pairI3" | ||
| 65 | echo "- $pairI" | ||
| 66 | echo "- $pairC" | ||
| 67 | |||
diff --git a/run_all_tacle.sh b/run_all_tacle.sh index c0f07cc..51a9c24 100755 --- a/run_all_tacle.sh +++ b/run_all_tacle.sh | |||
| @@ -10,6 +10,10 @@ if [ $# -lt 2 ]; then | |||
| 10 | echo "Usage $0 <number of iterations> <run ID>" | 10 | echo "Usage $0 <number of iterations> <run ID>" |
| 11 | exit | 11 | exit |
| 12 | fi | 12 | fi |
| 13 | if [[ "$EUID" != 0 ]]; then | ||
| 14 | echo "You need to be root to enable spatial isolation!" | ||
| 15 | exit | ||
| 16 | fi | ||
| 13 | date | 17 | date |
| 14 | 18 | ||
| 15 | # Run the pairs baseline and some comparisons to examine the effect of less cache | 19 | # Run the pairs baseline and some comparisons to examine the effect of less cache |
| @@ -30,13 +34,13 @@ date | |||
| 30 | cd ../all_pairs | 34 | cd ../all_pairs |
| 31 | make all -j32 | 35 | make all -j32 |
| 32 | # No cache isolation | 36 | # No cache isolation |
| 33 | pairXI=all_pairs/$(date +"%b%d-%H")-c-xi-$runID.txt | 37 | pairXI=all_pairs/$(date +"%b%d-%H")-c-xi-$runID"-A.txt and -B.txt" |
| 34 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi $runID | 38 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I xi $runID |
| 35 | # Shared L2, split L3 | 39 | # Shared L2, split L3 |
| 36 | pairI3=all_pairs/$(date +"%b%d-%H")-c-i3-$runID.txt | 40 | pairI3=all_pairs/$(date +"%b%d-%H")-c-i3-$runID"-A.txt and -B.txt" |
| 37 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i3 $runID | 41 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i3 $runID |
| 38 | # Split L2, split L3 | 42 | # Split L2, split L3 |
| 39 | pairI=all_pairs/$(date +"%b%d-%H")-c-i-$runID.txt | 43 | pairI=all_pairs/$(date +"%b%d-%H")-c-i-$runID"-A.txt and -B.txt" |
| 40 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i $runID | 44 | echo "" | ../run_bench.sh -m pair -p 15 -P 31 -l $maxJobs -b tacleNames.txt -B -I i $runID |
| 41 | date | 45 | date |
| 42 | 46 | ||
diff --git a/run_bench.sh b/run_bench.sh index 250d843..ddc6bcc 100755 --- a/run_bench.sh +++ b/run_bench.sh | |||
| @@ -373,11 +373,11 @@ for (( i = 0; i < ${#bench[@]} ; i++ )); do | |||
| 373 | else | 373 | else |
| 374 | # No synchronization between pairs - original soft real-time SMT approach | 374 | # No synchronization between pairs - original soft real-time SMT approach |
| 375 | if [[ -v $LITMUS ]]; then | 375 | if [[ -v $LITMUS ]]; then |
| 376 | echo "${input[$i]}" | numactl $numa_arg0 taskset -c $core $prefix/${bench[$j]} ${bench[$j]} -1 $core NULL 0 & PID1=$!; | 376 | echo "${input[$j]}" | numactl $numa_arg0 taskset -c $core $prefix/${bench[$j]} ${bench[$j]} -1 $core NULL 0 & PID1=$!; |
| 377 | echo "${input[$j]}" | numactl $numa_arg1 taskset -c $core_two $prefix/${bench[$i]} ${bench[$i]}"+"${bench[$j]} $maxJobs $core_two $runID-$userRunID 1 & PID2=$!; | 377 | echo "${input[$i]}" | numactl $numa_arg1 taskset -c $core_two $prefix/${bench[$i]} ${bench[$i]}"+"${bench[$j]} $maxJobs $core_two $runID-$userRunID 1 & PID2=$!; |
| 378 | else | 378 | else |
| 379 | echo "${input[$i]}" | chrt -r 97 numactl $numa_arg0 taskset -c $core $prefix/${bench[$j]} ${bench[$j]} -1 $core NULL 0 & PID1=$!; | 379 | echo "${input[$j]}" | chrt -r 97 numactl $numa_arg0 taskset -c $core $prefix/${bench[$j]} ${bench[$j]} -1 $core NULL 0 & PID1=$!; |
| 380 | echo "${input[$j]}" | chrt -r 97 numactl $numa_arg1 taskset -c $core_two $prefix/${bench[$i]} ${bench[$i]}"+"${bench[$j]} $maxJobs $core_two $runID-$userRunID 1 & PID2=$!; | 380 | echo "${input[$i]}" | chrt -r 97 numactl $numa_arg1 taskset -c $core_two $prefix/${bench[$i]} ${bench[$i]}"+"${bench[$j]} $maxJobs $core_two $runID-$userRunID 1 & PID2=$!; |
| 381 | fi | 381 | fi |
| 382 | wait $PID2 | 382 | wait $PID2 |
| 383 | kill $PID1 | 383 | kill $PID1 |
