Performance Visualization
Parallel Programs


Performance visualization traces its history to the original version of gist, a program that was delivered with, and ran only on, the BBN Butterfly parallel computer. Gist is still available as part of the TotalView debugging environment, although it is now known as TimeScan. The original version of our logfile viewer, Upshot, was written to provide the most useful feature of gist, its zoomable and scrollable timeline window, in a color version (gist was black and white only) that was non proprietary and would run on any workstation supporting X-windows. (Upshot gets its name from gist, for which it is a synonym.) Over the years Upshot expanded to include a number of new features. The enhancements were motivated by an application whose highly irregular and input-dependent behavior made an analysis tool of this type indispensable. The logfile generation library developed along with Upshot was called ALOG, for Argonne logging.

Upshot originally was written in X (with the Athena widget set). Because it was cumbersome to expand and maintain, we completely rewrote it in the Tcl scripting language, using the Tk companion graphics package. This approach made for extremely rapid development, but the interpreted nature of the language made the graphics component slow when logfiles were large. To deal with this problem, we rewrote the main graphics component of Upshot in C, using Tcl's C interface. This rewrite, called Nupshot (for new upshot), solved the performance problem but introduced a dependency on an unstable part of Tcl itself, as the C interface changed right after the publication of this version. Nupshot can still be used, however, if one obtains an earlier version of Tcl/Tk. Upshot, in pure Tcl/Tk, is also still available but it too requires an old version of Tcl. This instability of Tcl/Tk encouraged us to find an alternative.

In order to address the portability and maintainability issues faced by Upshot and Nupshot, a Java-based viewer, Jumpshot was born. Four different iterations of the Java-based viewer exist. Each addresses a different set of requirements at the time of development. For more information, see Jumpshot.

A few years ago, we rewrote the logging library to improve in multiple ways on ALOG. There was also an intermediate library called BLOG. For historical continuity, therefore, the new package had to be called CLOG (pronounced see-log). When scalability becomes a central issue in the logfile design, SLOG ( abbreviation for Scalable LOGfile ) was developed to address the problem.

Logfile-based tools similar to ours have a rich history. Commercial tools include TimeScan, and Vampir, and academic tools that are distributed for use by others include ParaGraph, TraceView, XPVM, XMPI, and Pablo. Our visualization tool shares some features with these other tools, but it is unique in its particular combination of features.