PerfSuite

Table of Contents

Overview Summary
Examples Descriptions
Publications Presentations
Software Download
License Feedback

Overview

PerfSuite is a collection of tools, utilities, and libraries for software performance analysis where the primary design goals are ease of use, comprehensibility, interoperability, and simplicity. This software can provide a good "entry point" for more detailed performance analysis and can help point the way towards selecting other tools and/or techniques using more specialized software if necessary (for example, tools/libraries from academic research groups or third-party commercial software).

However, you may find that PerfSuite by itself gives you the information you need to focus your performance optimization efforts in the right direction without extensive source code changes to your application or complicated builds of the performance tools or libraries themselves.

PerfSuite development is driven by people who do performance analysis on a daily basis with a wide variety of applications. Therefore the emphasis is on practicality, robustness, simplicity, and utility in real-world, everyday use on platforms ranging from single-processor workstations to terascale clusters and beyond.

Here's a brief background presentation about PerfSuite. You can also read an overview paper that describes its design and implementation.

PerfSuite is freely-available under a liberal open source license.

National Science Foundation (NSF) has sponsored this project in various forms, directly (through the POINT project) and indirectly. Its support is deeply appreciated.

Summary

Many different factors contribute to overall application performance in today's high-performance computing environments. The following summary table maps PerfSuite software to specific components in the system:

Software Category Platform Compiler CPU
Cache
Memory
MPI
Network
I/O
Tool Library/
API
x86
x86-64
ia-64
libperfsuite   *           
libpshwpc   *           
psinv *             
psrun *             

Examples and Status

Here are some examples that highlight the use of PerfSuite on a key application that has been deployed on the NCSA Linux clusters. You can also access a flyer distributed at the Supercomputing 2003 conference that gives an overview of the software's capabilities (first and second pages).

In 2003, PerfSuite was selected for use in measuring the performance of all parallel applications that use the NCSA IA-32 and IA-64 Linux clusters after a review of available performance analysis software. Within a few months after deployment, well over 4 million records of performance data from production scientific applications were gathered using PerfSuite, all without changing a single line of application source code, recompiling, or relinking. A presentation describing the initial motivations, implementation, and results of this work is available here. Following the success of the pilot performance data collection project, the effort was expanded in 2005 to include measurement of all applications (serial and parallel, shared and distributed memory) that use the NCSA SGI Altix system.

PerfSuite teamed with developers of the widely-used tools PAPI, TAU, and KOJAK under the National Science Foundation's Software Development for Cyberinfrastructure (SDCI) program to provide an integrated toolset for application performance analysis and engineering for current and future generations of high-performance computing systems. The overall project is named POINT. The award abstract describes the overall goals of this project.

PerfSuite is currently in use at the following sites:

NCSA
Pentium III, Itanium, Xeon clusters, and SGI Altix
TeraGrid
Itanium 2 clusters at NCSA, SDSC, CalTech, and ANL

Information specific to using PerfSuite on NCSA systems is available here.

Descriptions

Current components include:

Command-Line Utilities


Graphical Tools


Web-Based Tools


Software Libraries / Scripting Package


Publications

The following PerfSuite-related articles are available online:

PerfSuite: An Accessible, Open Source Performance Analysis Environment for Linux. 6th International Conference on Linux Clusters: The HPC Revolution 2005. Chapel Hill, NC. April 2005.
PDF (390 KB)

Measuring and Improving Application Performance with PerfSuite. Linux Journal #135, July 2005.
HTML

Presentations

You can view the following presentations about PerfSuite:

PerfSuite
An overview of the capabilities in the initial release of PerfSuite.
Supercomputing 2003. Phoenix, AZ. Nov 2003.
Performance Monitoring/Analysis of Overall Job Mix on Large-Scale Pentium and Itanium Linux Clusters
A description of the motivation, implementation, and experiences in using PerfSuite for automatic performance data collection on large-scale Linux clusters.
SIAM Conference on Parallel Processing. San Francisco, CA. Feb 2004.
Introduction to PerfSuite
A tutorial on PerfSuite, covering installation and basic use. Includes examples of using the tools and API.
5th International Conference on Linux Clusters: The HPC Revolution 2004. Austin, TX, May 2004.
The Ohio Supercomputer Center Cluster Focus Group. Columbus, OH, May 2004.
PerfSuite: An Accessible, Open Source Performance Analysis Environment for Linux
An overview of PerfSuite architecture, capabilities and development status, updated for version 0.6.2.
6th International Conference on Linux Clusters: The HPC Revolution 2005. Chapel Hill, NC, April 2005.

Software Information

PerfSuite is written in C, C++, Java, Tcl/Tk, XSL, and JavaScript. Several of the components in PerfSuite are built upon software from other sources:

If you're building your own Linux cluster, you might find the following links to a few performance analysis tools useful.


Download

PerfSuite source distributions are available at the software download page. The initial release was made available in December 2003.

License

PerfSuite is licensed under the University of Illinois/NCSA Open Source License. OSI Certified

Feedback

If you're a user of PerfSuite software, we're very interested in your feedback, comments, questions, suggestions, and bug reports. The primary resource for communication about PerfSuite are mailing lists that are maintained at SourceForge.

People

The following people have participated in PerfSuite design and development:

Rick Kufrin, Dong Ahn, Anand Raghuraman, Jun-Hyuk Seo, Rui Liu.
Rick Kufrin was the original author, and contributed the most. Rui Liu is the current maintainer.