Repository navigation
Expand file tree
/
Copy pathScript.sh
More file actions
executable file
·98 lines (83 loc) · 3.78 KB
/
Copy pathScript.sh
File metadata and controls
executable file
·98 lines (83 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
make compile
# Specify the output file
o_lock_stack="lock_stack.txt"
o_free_stack="free_stack.txt"
o_lock_queue="lock_queue.txt"
o_free_queue="free_queue.txt"
o_lock_map="lock_map.txt"
o_free_map="free_map.txt"
echo "" > "lock_stack.txt"
echo "" > "free_stack.txt"
echo "" > "lock_queue.txt"
echo "" > "free_queue.txt"
echo "" > "lock_map.txt"
echo "" > "free_map.txt"
# Loop from 1 to 10000, incrementing by 2
# for n in {1000..1000000000}; do
for (( n=0; n <= 7; n += 1 ))
do
total_time_lock_stack=0
total_time_free_stack=0
total_time_lock_queue=0
total_time_free_queue=0
total_time_lock_map=0
total_time_free_map=0
# Run the command 5 times and average the results
for run in {1..5}
do
# Run the command and capture the time output
command_output=$(./main -r 1 -w $n -R 1000000 -W 1000000 >&1)
# /bst --hash-workers 5 --data-workers 10 --input fine.txt --comp-workers -2 > outpasdf.txt
# Extract the time value from the command output (modify this part based on your actual command output)
lock_stack=$(echo "$command_output" | grep -oE 'LockStack: [0-9]+')
free_stack=$(echo "$command_output" | grep -oE 'FreeStack: [0-9]+')
lock_queue=$(echo "$command_output" | grep -oE 'LockQueue: [0-9]+')
free_queue=$(echo "$command_output" | grep -oE 'FreeQueue: [0-9]+')
lock_map=$(echo "$command_output" | grep -oE 'LockMap: [0-9]+')
free_map=$(echo "$command_output" | grep -oE 'FreeMap: [0-9]+')
# Check if time_value is not empty
if [ -n "$lock_stack" ]; then
# echo "$lock_stack"
total_time_lock_stack=$(awk "BEGIN { print $total_time_lock_stack + ${lock_stack#LockStack: } }")
fi
if [ -n "$free_stack" ]; then
total_time_free_stack=$(awk "BEGIN { print $total_time_free_stack + ${free_stack#FreeStack: } }")
fi
if [ -n "$lock_queue" ]; then
total_time_lock_queue=$(awk "BEGIN { print $total_time_lock_queue + ${lock_queue#LockQueue: } }")
fi
if [ -n "$free_queue" ]; then
total_time_free_queue=$(awk "BEGIN { print $total_time_free_queue + ${free_queue#FreeQueue: } }")
fi
if [ -n "$lock_map" ]; then
total_time_lock_map=$(awk "BEGIN { print $total_time_lock_map + ${lock_map#LockMap: } }")
fi
if [ -n "$free_map" ]; then
total_time_free_map=$(awk "BEGIN { print $total_time_free_map + ${free_map#FreeMap: } }")
fi
# else
# echo "Error extracting time value for n=$n, run $run"
# fi
done
# # Calculate the average time over 5 runs
average_time_lock_stack=$(awk "BEGIN { print $total_time_lock_stack / 5 }")
average_time_free_stack=$(awk "BEGIN { print $total_time_free_stack / 5 }")
average_time_lock_queue=$(awk "BEGIN { print $total_time_lock_queue / 5 }")
average_time_free_queue=$(awk "BEGIN { print $total_time_free_queue / 5 }")
average_time_free_map=$(awk "BEGIN { print $total_time_free_map / 5 }")
average_time_lock_map=$(awk "BEGIN { print $total_time_lock_map / 5 }")
# Write the result to the output file
echo "$average_time_lock_stack" >> "$o_lock_stack"
echo "$average_time_free_stack" >> "$o_free_stack"
echo "$average_time_lock_queue" >> "$o_lock_queue"
echo "$average_time_free_queue" >> "$o_free_queue"
echo "$average_time_lock_map" >> "$o_lock_map"
echo "$average_time_free_map" >> "$o_free_map"
# echo "$total_time_lock_stack" >> "$o_lock_stack"
# echo "$total_time_free_stack" >> "$o_free_stack"
# echo "$total_time_lock_queue" >> "$o_lock_queue"
# echo "$total_time_free_queue" >> "$o_free_queue"
# echo "$total_time_lock_map" >> "$o_lock_map"
# echo "$total_time_free_map" >> "$o_free_map"
done