Performance tuning theory and practice
Typical duration: 2 days
Course code: PR08
Performance tuning is a broad art that can provide considerable efficiency gains, and is all about trade-offs. This course provides a comprehensive summary of the tuning process on modern software and hardware - from bottleneck identification, through localization, to tuning.
Training topicsPerformance tuning
We start with an overview of modern processor and system architecture and identifying the parts where bottlenecks can (and usually do) occur. We continue with a view on reproducible benchmarking and understanding main scalability and performance metrics - how to react and what to do. Further discussion includes drilling down on performance figures using a range of tools such as perf, Intel VTune and compilers. We conclude with pitfalls and common do's and don'ts, paying particular attention to C and C++ workloads running on x86 (Intel/AMD) hardware.
The course includes an extensive hands-on lab, which is key to understanding the concepts discussed and observing how they apply in practice.
After the course, the students will:
- Tune code faster and with better precision to obtain speedups and remove inefficiencies
- Benchmark software and hardware with full confidence
- Understand and use a variety of performance metrics
- Identify, localize and tune bottlenecks in their software
- Efficiently use mainstream performance tuning tools (free or commercial)
Performance monitoring and tuning - which metrics to consider, how to measure, how to react
Informed, accurate, reproducible benchmarking
Fundamentals of scalability and monitoring, controlling various software and hardware features