https://youtu.be/r-TLSBdHe1A
- Modern-day computing is concurrent and non-linear
- Moore’s Law has not been holding for awhile
- Can no longer dissipate enough heat
- Solution is to use more cores
- Processors also do an in-ordinate amount of hardware optimization
- caching
- branch prediction
- Because of this, many weird things affect the performance of programs
- “Layout biases measurement” Mytkowicz et al. (APLOS ‘09)
- almost anything that changes memory layout will impact performance
- upgrading dependencies
- manual memory allocation (
malloc)
- path length
- the order in which programs are linked during compilation
- can actually speed up programs more than turning on an optimization flag (like
-O3)
- changes function addresses
- environment variables size
- Most profiling assumes end-to-end optimization
- Speaker’s lab created “Stabilizer” to minimize the effects of layout during profiling (ie eliminate randomness)
- The tool repeatedly randomizes layout while executing
- changes function addresses, stack frame size, heap allocations
- most profiling done today is like surveying one person over and over again: the underlying layout hasn’t changed.
- Uses null hypothesis testing
- What is the probability that the difference in performance measurement
between two programs is due to randomness?
- If the null hypothesis is true, the two measurements are equal and
randomness caused the difference
- If the null hypothesis is false, measurements are actually different