Visual Analytics and Imaging Laboratory (VAI Lab)
Computer Science Department, Stony Brook University, NY

PUMA-V: Optimizing Parallel Code Performance Through Interactive Visualization

Eric. Papenhausen, M.Harper Langston, Benoit Meister, Richard Lethin, Klaus Mueller

Abstract: Performance optimization for parallel, loop-oriented programs compromises between parallelism and locality. We present a visualization interface which allows programmers to assist the compiler in generating optimal code. It greatly improves the user’s understanding of the transformations that took place and aids in making additional transformations in a visually intuitive way.

Teaser:The PUMA-V tool showing the state of the code – a consecutive matrix multiplication task – after the “affine scheduling” optimization (or tactic) has been applied:

Panel (a) shows the tactic view. It is a subway visualization, where each tactic is represented by a station, applied sequentially left to right. Panel (b) shows the dependence graph view. It is a node-link diagram where nodes represent statements and edges represent dependences. The code view in (c) lists the nested-loop program code that is being optimized. Finally, the beta tree view in (d) shows the lexicographic ordering of loops and statements. Each branch is a nested loop where the numbers refer to the numbers appended to the code statements in the code view.

Video: Watch it to get a quick overview:

Paper: E. Papenhausen, M.H. Langston, B. Meister, R. Lethin, K. Mueller, "PUMA-V: Optimizing Parallel Code Performance Through Interactive Visualization," IEEE Computer Graphics & Applications,39(1): 84-99, 2019. pdf ppt

Funding: NSF grant IIS-1527200 and DOE STTR Phase I/II grants DE-FOA-0000760/DEFOA-000101