The growth in size and complexity of scaling applications and the systems on which they run pose challenges in analyzing and improving their overall performance. With metrics coming from thousands or millions of processes, visualization techniques are necessary to make sense of the increasing amount of data. To aid the process of exploration and understanding, we announce the initial release of Boxfish, an extensible tool for manipulating and visualizing data pertaining to application behavior. Combining and visually presenting data and knowledge from multiple domains, such as the application's communication patterns and the hardware's network configuration and routing policies, can yield the insight necessary to discover the underlying causes of observed behavior. Boxfish allows users to query, filter and project data across these domains to create interactive, linked visualizations.
I. PROJECTING DATA ACROSS DOMAINSWe describe the association of elements that exist in one domain with the elements of another as a projection. A map file which associates integer MPI ranks with coordinate-denoted hardware nodes and threads is an example of a commonly used projection. Schulz et al.[1] advocated the use of projections in interpreting performance data and defined three domains of interest -hardware, application and communication. The hardware domain includes performance counters. The application domain includes information relating to the application, such as physics measurements in a simulation or matrix properties in a linear algebra library. The communication domain includes messages sent among subsets of processors. Boxfish recognizes these domains by default, but contributed modules may add others.Boxfish is designed to support the projection of data across domains. When filters or queries are written requiring attributes from multiple domains, or when a view requires attribute information in a native domain, Boxfish searches its available projections to make the necessary transformations. This allows users to view data such as the load on nodes which had a certain range of values in a previous run or the average wait time for communicators in a particular phase of the application. Data tables may have default preferred projections. Projections can be added from files, created based on data Fig. 1. A 3D torus network represented in 2D (left) and 3D (right). Both views represent elements of the hardware domain. However, nodes are colored by their sub-communicators, which belong to the communication domain.Links are colored by the number of packets sent over them. These views are rendered side by side in Boxfish, indicating they are siblings in the filter hierarchy and show the same data. In the 2D view, selected nodes are displayed at a slightly larger size. In the 3D view, the same nodes are selected and highlighted by their relative opacity. attributes, or composed from existing ones. More projections may be added through future or contributed modules. Figure 1 shows a projection from the communication domain on...