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 |