Skip to content

Commit f8ba92b

Browse files
author
Inkedstinct
committed
feat(scripts): Minimize bias between sensor and perf introduced by sleep
1 parent 9413995 commit f8ba92b

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

templates/hwpc_alone.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ for i in {1..{{ nb_iterations }}}; do
1515
{% if hwpc_alone_configs.get(core_value).unwrap().system.rapl.events.len() > 0 %} -s "rapl" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.rapl.events %}-e "{{ event }}" {% endfor %} {% endif %} {% if hwpc_alone_configs.get(core_value).unwrap().system.msr.events.len() > 0 %} -s "msr" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.msr.events %}-e "{{ event }}" {% endfor %} {% endif %} {% if hwpc_alone_configs.get(core_value).unwrap().system.core.events.len() > 0 %} -c "core" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.core.events %}-e "{{ event }}" {% endfor %} {% endif %}
1616
while ! [[ -e "{{ results_directory }}/hwpc_alone_{{ core_value }}_{{ cpu_ops_per_core }}/hwpc_alone_{{ core_value }}_{{ cpu_ops_per_core }}_$i/rapl.csv" ]]; do sleep 0.02s ; done
1717
stress-ng --cpu {{ core_value }} --cpu-ops {{ core_value * cpu_ops_per_core }} -q
18+
sleep 1s
1819
docker rm -f {{ hwpc_alone_configs.get(core_value).unwrap().name }}_{{ cpu_ops_per_core }}_$i
1920
sleep 15
2021
done

templates/hwpc_and_perf.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,16 @@ for i in {1..{{ nb_iterations }}}; do
1515
-r {{ hwpc_and_perf_configs.get(core_value).unwrap().output.type }} -U {{ hwpc_home_directory }}/{{ results_directory }}/hwpc_and_perf_{{ core_value }}/hwpc_and_perf_{{ core_value }}_{{ cpu_ops_per_core }}_$i \
1616
{% if hwpc_alone_configs.get(core_value).unwrap().system.rapl.events.len() > 0 %} -s "rapl" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.rapl.events %}-e "{{ event }}" {% endfor %}{% endif %} {% if hwpc_alone_configs.get(core_value).unwrap().system.msr.events.len() > 0 %} -s "msr" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.msr.events %}-e "{{ event }}" {% endfor %} {% endif %} {% if hwpc_alone_configs.get(core_value).unwrap().system.core.events.len() > 0 %} -c "core" {%~ for event in hwpc_alone_configs.get(core_value).unwrap().system.core.events %}-e "{{ event }}" {% endfor %} {% endif %}
1717

18+
sudo-g5k bash -c "perf stat -a -o /tmp/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}_$i {% for perf_event in perf_events.iter() %}-e {{ perf_event }} {% endfor %} & echo \$!" > /tmp/perf_pid_$i
19+
PERF_PID=$(cat /tmp/perf_pid_$i)
1820
while ! [[ -e "{{ results_directory }}/hwpc_and_perf_{{ core_value }}/hwpc_and_perf_{{ core_value }}_{{ cpu_ops_per_core }}_$i/rapl.csv" ]]; do sleep 0.02s ; done
1921
### PERF with {{ core_value }} CPU * {{ cpu_ops_per_core }} OPS
20-
sudo perf stat -a -o /tmp/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}_$i {% for perf_event in perf_events.iter() %}-e "{{ perf_event }}" {% endfor %} stress-ng --cpu {{ core_value }} --cpu-ops {{ core_value * cpu_ops_per_core }} -q
21-
cat /tmp/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}_$i >> {{ results_directory }}/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}
22+
stress-ng --cpu {{ core_value }} --cpu-ops {{ core_value * cpu_ops_per_core }} -q
23+
sleep 1s
24+
25+
sudo-g5k kill -2 $PERF_PID
2226
docker rm -f {{ hwpc_and_perf_configs.get(core_value).unwrap().name }}_{{ cpu_ops_per_core }}_$i
27+
cat /tmp/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}_$i >> {{ results_directory }}/perf_and_hwpc_{{ core_value }}_{{ cpu_ops_per_core }}
2328
sleep 15
2429
done
2530

templates/perf_alone.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
touch {{ results_directory }}/perf_alone_{{ core_value }}_{{ cpu_ops_per_core }}
44
for i in {1..{{ nb_iterations }}}; do
55
### PERF with {{ core_value }} CPU * {{ cpu_ops_per_core }} OPS
6-
sudo perf stat -a -o /tmp/perf_alone_{{ core_value }}_{{ cpu_ops_per_core }}_$i {% for perf_event in perf_events.iter() %}-e "{{ perf_event }}" {% endfor %} stress-ng --cpu {{ core_value }} --cpu-ops {{ core_value * cpu_ops_per_core }} -q
6+
sudo-g5k bash -c "perf stat -a -o /tmp/perf_alone_{{ core_value }}_{{ cpu_ops_per_core }}_$i {% for perf_event in perf_events.iter() %}-e {{ perf_event }} {% endfor %} & echo \$!" > /tmp/perf_pid_$i
7+
PERF_PID=$(cat /tmp/perf_pid_$i)
8+
stress-ng --cpu {{ core_value }} --cpu-ops {{ core_value * cpu_ops_per_core }} -q
9+
sleep 1s
10+
sudo-g5k kill -2 $PERF_PID
711
cat /tmp/perf_alone_{{ core_value }}_{{ cpu_ops_per_core }}_$i >> {{ results_directory }}/perf_alone_{{ core_value }}_{{ cpu_ops_per_core }}
812
done
913
{% endfor %}

0 commit comments

Comments
 (0)