Visual Analytics and Imaging Laboratory (VAI Lab)
Computer Science Department, Stony Brook University, NY
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