How to normalize the CPU time for comparing algorithm execution time on systems with different hardware configurations?
Comparing algorithms in terms of having comparable, reliable, and reproducible results is only possible on the same hardware. Especially the runtime ( wall- or cpu-time) depend strongly on nearly all aspects of your hardware like:
- clock speed of the CPU
- clock speed of the memory
- cycle length of the memory
- bandwidth of the memory connection
- ECC mode for the memory (enabled/disabled)
- interconnect between CPU sockets
- power consumption ( regarding AVX turbo mode or slowing down the system due to thermal reasons)
So there are too many factors that influence the runtime if there are different hardware configurations and in this way no normalization which takes all of them into account can be found.