Boosting Performance Engineering with Visual Interactive Optimization and Analysis

The increasingly heterogeneous computer architecture landscape makes writing fast and energy efficient scientific high performance computing applications an increasingly complex yet important task. This has given rise to separate performance engineers, designated to optimizing domain scientists’ software to run optimally on different hardware architectures, but interaction between the two roles is complex and inefficient, and tool integration for performance engineers is lacking. We aim to better understand the needs of performance engineers with a qualitative interview study and provide an integrated development environment for domain scientists and performance engineers alike with the goal to enable fast and efficient optimization workflows. Our environment provides easy access to visual feedback for new static and dynamic analysis passes geared to understanding an application’s performance, while also allowing for simple exploratory optimization. We show that our environment allows domain scientists with little to no computer science background to optimize their code to a considerable extent, while cleanly separating the concerns of program definition and optimization with a visual intermediate language.

The full text can be found in the ETH Zürich Research Collection.

The Visual Studio Code extension provided in this work is open source and available on the Visual Studio Code Marketplace, with source code on GitHub here.