-
Notifications
You must be signed in to change notification settings - Fork 25
Description
ReBench should steer the user more aggressively to a setup that is more likely to avoid measuring noise.
Much of the currently observed noise seems a mistake on my part.
After Infinity got shutdown, I did not migrate and actually lost the scripts setting no_turbo and the performance settings on the current benchmark machine. An attempt to recreate the script is below. Another issue is that --without-nice creeped into the benchmark setting, probably because I didn't have sudo on the machine initially.
So, to make things less dependent on my remembering things, a PR should:
-
be more aggressive about use of nice, i.e., document consequences (more noise, more invocations needed), and try whether nice can be used even when flag is given and output a warning when it's available.
-
check @charig's branch whether we can lift any changes here: master...reactorlabs:PowerManagement
- set min/max frequency (
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq,/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq,/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies) (not used, because it does not seem to force frequency on the system I am using)
- set min/max frequency (
-
look at https://github.com/intel/CommsPowerManagement and see whether we can use/borrow things
- a tool to manipulate the various details in the sys file system
-
check @vext01's Krun for whether simple things are worth borrowing (cc @ltratt), e.g.:
- kernel sample rate is reduced to 1 second intervals
- cset is used
- set a core's register to disable turbo: https://github.com/softdevteam/krun/blob/master/krun/platform.py#L1253 (not yet done, because I hope it's redundant with the
no_turboconfig)
-
report problematic settings at beginning and end of run so they are visible to the user, and a reminder to myself that something is going wrong
-
remove flag for not using nice and combine it into a setting which needs to be set in the configuration to disable attempts to reduce noise
-
for artifacts, we need a "reviewer-friendly" mode, which gives them information about the expected quality of data, but, does not make them think things are broken
-
the changes made should be stored as environmental details, and reported to ReBenchDB
set -x
echo Disable Turboboost
echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
echo Current cpu governor settings
for i in {0..23}
do
cat /sys/devices/system/cpu/cpu${i}/cpufreq/scaling_governor
done
for i in {0..23}
do
#cpufreq-set -c $i -g powersave
cpufreq-set -c $i -g performance
# powersave is the original setting
doneTODOs
- look into https://pyperf.readthedocs.io/en/latest/system.html
- read http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-32-ia-64-benchmark-code-execution-paper.pdf
Further Notes
- useful tool to monitor CPU: https://github.com/cyring/CoreFreq
Metadata
Metadata
Assignees
Labels
Projects
Status
Status