Open-Source Performance Analysis Tools
The PerfSuite tool is from the National Center for Supercomputing Applications (http://perfsuite.ncsa.uiuc.edu/). PerfSuite includes a number of tools and libraries for performance analysis of serial, MPI, and OpenMP applications. Of initial interest to most users is the PSRUN tool that, when run on an application, generates textual output of raw performance counter data as well as a wealth of derived statistics. Figure 1 is an example of a run of the genIDLEST application. PSRUN can also be used to generate flat statistical profiles by file, function, and source line of an application.
The HPCToolkit, from the Center for High Performance Software Research at Rice University (http://www.hipersoft.rice.edu/hpctoolkit/), includes hpcruna command-line tool to generate flat statistical profiles to be visualized with a Java-based GUI called "hpcview" as shown in Figure 2. HPCToolkit is capable of generating and aggregating multiple simultaneous profiles such that for a postanalysis, line-by-line profiles can be generated from multiple hardware metrics. Like PerfSuite, HPCToolkit supports serial and parallel execution models.
Often after an initial performance analysis, users wish to narrow the focus of their examination. This may involve making detailed measurements of HASH(0x87fb30) of code and associating them with an application event, such as updates of a cell in a grid. TAU, the "Tuning and Analysis Utilities" from the University of Oregon, is such a tool (http://www.cs.uoregon.edu/research/paracomp/tau/ tautools/). TAU is a comprehensive environment for performance analysis that includes modules for both source and binary instrumentation, experiment management of performance data, and scalable GUIs suitable for visualization of highly parallel programs. TAU runs just about everywhere and can even function without PAPI being available (although only time-based metrics are available without PAPI). Figure 3 is a TAU display of the performance of a 16-process MPI program.
P.M., N.S., and P.E.