Reproducibility problems in performance measurements
Consistent results in measurements are paramount to properly inform judgement and action when doing performance optimization.
Common sources of irreproducibility
If you repeat a performance measurement and you notice an unexpected variation, consider these aspects:
Class |
Cause |
Mitigation/Solution |
Notes |
|---|---|---|---|
Software |
Software versions |
Proper dependency tracking, |
|
Compiler flags |
Automation of builds, |
(also for Julia) |
|
Hardware |
CPU frequency variations |
|
factor of 4 observed |
Microcode updates |
Track microcode versions |
(Rare) |
|
Multithreading |
Thread migration |
thread/process pinning |
|
Dynamic thread scheduling |
Use static scheduling instead |
dynamic scheduling necessary |
|
“Noisy Neighbour” |
node sharing |
use |
|
shared filesystem |
Isolate, manage |
||
Network congestion |
topology control |