Minisymposium Presentation
Machine Learning for Performance Engineering Across Applications
Description
Developing fast and portable HPC codes is an evolving process that spans the entire lifetime of an application, adapting to changes in target hardware and new software optimization techniques over time. Unfortunately, because of subtle differences in codes, the lessons learned from optimizing one application are often re-learned in others, despite sharing similar optimization spaces. This talk will shine a spotlight on ML-based techniques to identify optimization opportunities across applications. Using fuzzy matching, performance embedding spaces, and transfer tuning, performance engineers are now able to cluster subprograms by static and dynamic characteristics.We will discuss the productivity benefits of state-of-the-art methods and the potential computational reduction (within and across applications) - turning hundreds of hours of auto-tuning to a "performance database" query and local search - using a real-world case study in an atmospheric model. Lastly, we will discuss future directions in the field and how we can potentially leverage machine learning to aid performance engineering more generally.