Theme: Programming

Advanced performance tuning


Level: Intermediate

Typical duration: 1 day

Lectures: 5h

Labs: 3h

Course code: PR09

Performance tuning is a broad art that is all about trade-offs. This course teaches how to work with hardware performance monitors, and how to employ processes and metrics that shorten time to solution in tuning scenarios.

Training topics

Hardware performance monitors
Tuning ratios and limits

We discuss the availble tools for performance tuning on Intel/AMD hardware, in particular the open-souce perf tool, Intel VTune and Google's GOODA. We explain in detail how instrumented and hardware performance monitors work, which data can be trusted and which cannot, and how to employ advanced features of tools with confidence. We also discuss state of the art tuning processes such as Top-Down and Hierarchical Cycle Accounting, which guide the developer directly to the bottlenecks they are faced with. The metrics included in those processes describe in good detail the nature of a problem, and allow to easily localize it in the source code.

During the hands-on labs, the students will interact with the tools and processes discussed.

 

Results

After the course, the students will:
- Tune code faster and with better precision to remove advanced bottlenecks
- Understand the operation and characteristics of hardware performance monitors
- Understand and use important tuning metrics (and develop new ones)
- Efficiently use advanced instrumented and real-time monitoring tools

Training concepts

Operation and internals of hardware performance monitors
Tuning with events, ratios, generating custom ratios
Establishing tuning limits; advanced tool usage; instrumented and realtime monitoring