NCSA Home
Contact Us | Intranet | Search

PerfSuite


Overview

PerfSuite is an easy-to-use collection of tools, utilities, and libraries to support application software performance analysis on Linux-based systems (x86, x86-64, and ia64). It includes components to assist with a wide variety of performance-related tasks, ranging from assistance with compiler optimization reports to hardware performance counting, profiling, and MPI usage summarization.

PerfSuite is Open Source software, approved for licensing under the University of Illinois/NCSA Open Source License (OSI-approved).

You can find out more about PerfSuite at the project web sites, located at:

http://perfsuite.ncsa.uiuc.edu/
http://perfsuite.sourceforge.net/

The project web sites contain pointers to online documentation for PerfSuite and its individual components. Links to download pages for the current PerfSuite source distribution are also available at the project web sites.


NCSA-specific information

PerfSuite software is available for use on the Abe, Tungsten and Mercury Linux clusters and the Cobalt SGI Altix system.

On Abe, Tungsten and Cobalt, you can find PerfSuite software in the directory:

/usr/apps/tools/perfsuite

On Mercury, PerfSuite is available in the directory:

/usr/projects/perfsuite

To use PerfSuite on NCSA Linux systems, convenience scripts are available that modify your environment to include the proper PATH, LD_LIBRARY_PATH, and MANPATH settings. They are named psenv.sh and psenv.csh (for Bourne shell and C shell users, respectively) and are located in the bin subdirectory of the installation.

Examples of use:

Bourne shell (bash):
$ source /usr/apps/tools/perfsuite/bin/psenv.sh
C shell (tcsh):
% source /usr/apps/tools/perfsuite/bin/psenv.csh

If you experience problems when issuing the source command as shown above, please ensure that the psenv file name argument supplied has the proper suffix (".sh" for bash, ".csh" for tcsh).

The following UNIX man pages are available: psconfig, psenv, psinv, psprocess, psrun.


Using SoftEnv for PerfSuite

On Abe, Cobalt, Mercury, and Tungsten, PerfSuite is also available through the "SoftEnv" package. To set up your environment for PerfSuite with SoftEnv, use the following command:

soft add +perfsuite

If you are using the PerfSuite API directly from a Fortran program and you are compiling with the Intel compiler, you should substitute soft add +perfsuite-intel. You'll also want to link with Intel-compatible versions of PerfSuite that are in the directory /usr/apps/tools/perfsuite/lib/intel. Note that basic use of the PerfSuite command-line tools such as psrun can use either version.

You can arrange for PerfSuite to be included in your default environment by adding the line +perfsuite to the file $HOME/.soft

Please refer to NCSA's general user documentation for more information about using SoftEnv. If you use SoftEnv with PerfSuite, there is no need to use the psenv scripts described above.


Using psrun with mpirun

In most cases, you can use psrun with the MPI launch command mpirun on NCSA HPC platforms without modification. If you experience problems, you may find that using the full pathname to psrun will help. That is, try changing the command:

% mpirun -machinefile $MACHINEFILE -np 2 psrun mpiprogram

to:

% mpirun -machinefile $MACHINEFILE -np 2 /usr/local/bin/psrun mpiprogram

Note: you will want to change "/usr/local/bin" to the actual directory containing psrun on the system you are using.

If you are using the MPICH "ch_p4" device, you will not be able to use psrun with mpirun. This is because command-line arguments are changed by this variant of MPI. If you have questions, please refer to the contact information elsewhere on this page.


Using psrun with parallel programs on Cobalt

To use PerfSuite's psrun command with parallel programs on the SGI Altix (Cobalt), you should follow these steps:

For shared-memory (OpenMP/POSIX threads) programs:

psrun -p ompprogram

For shared-memory programs with dplace:

dplace [dplace-options] psrun -p ompprogram

For message-passing (MPI) programs:

mpirun -np P psrun -f mpiprogram

For hybrid (MPI + OpenMP) programs:

mpirun -np P psrun -f -p hybridprogram

Note: when using psrun with dplace, an additional process (psrun) must be accounted for when providing a "skip mask" through the dplace option -x. Please refer to the dplace man page for details.


psrun and the Intel compiler option -fast

Important note: the psrun command is only effective for executables that have been linked dynamically (the default linking mode). Statically-linked executables are produced when you add the option -static to your link line. The Intel compiler's -fast option, which selects a set of options likely to produce good performance, includes the -static option when your program is linked. Therefore, applications linked using this option will not produce performance data when run with psrun.

You can determine the option set implied by -fast by examining the "help" output of the compiler (-help): this will allow you to compile and link your application using the same optimization options as -fast (typically -O3 and -ipo) while omitting the option -static in order to produce a dynamically-linked executable that can be used with psrun.


For more information

If you have questions about or need assistance with PerfSuite at NCSA, please send email to:

consult (at) ncsa.uiuc.edu