Pajé, an Extensible and Interactive and Scalable Environment for Visualizing Parallel Program Executions

This report describes Paje, an interactive visualization tool for displaying the execution of parallel applications where a (potentially) large number of communicating threads of various life-times execute on each node of a distributed memory parallel system. Paje is capable of representing a wide variety of interactions between threads. The main novelty of Paje is an original combination of three of the most desirable properties of visualization tools for parallel programs: extensibility, interactivity and scalability. Interactivity gives the possibility to inspect all the objects displayed in the current screen and to move back and forth in time. Scalability is the ability to cope with long computations involving a large number of threads. Extensibility gives the possibility to extend easily the environment with new functionalities. The interactivity and scalability of Paje are exemplified by the performance tuning of a molecular dynamics application. To be easier to extend, Paje was designed as a data-flow graph of modular components, most of them being independent of the semantics of the programming model of the visualized parallel programs. In addition, the genericity of the main components of Paje allow application programmers to adapt the visualization to their needs, without having to know any insight nor to modify any component of Paje.