Computing Library › HPC & Compute
HPC & Compute

Performance Tuning

Performance tuning applies targeted changes, guided by measurement, to move a code closer to the hardware's limits without changing its results.

Tuning is measurement-driven

Tuning begins where profiling ends: with a known bottleneck. The goal is to reduce time to solution while preserving correctness. Because the limiting resource, arithmetic, memory bandwidth, communication, or synchronization, differs by kernel, there is no universal recipe, only a toolbox matched to the diagnosis.

Single-core techniques

Kronos motion — planet limits

Parallel techniques

Know the ceiling

The roofline model tells whether a kernel is compute- or memory-bound and how far it sits from the achievable peak. A memory-bound kernel will not benefit from faster arithmetic; a compute-bound one will not benefit from more bandwidth. Tuning toward the wrong ceiling wastes effort.

Diminishing returns

Each optimization exposes the next limit, and gains shrink as the code approaches the roofline. Disciplined tuning tracks time to solution, keeps changes verifiable against a reference result, and stops when further work no longer pays. Over-tuning can also hurt portability, so balance speed on one machine against maintainability across many. A change that wins on one processor generation can lose on the next, so the most durable optimizations are algorithmic, cutting the work or the data moved rather than exploiting a specific chip.