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, ia64, ppc64 and ppc32). 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://sourceforge.net/projects/perfsuite/
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 NCSA's Forge and
Ember systems, in the directory:
/usr/apps/tools/perfsuite
The following UNIX man pages are available:
psconfig, psenv, psinv, psprocess, psrun.
Using module for PerfSuite on Forge and Ember
On Forge and Ember, PerfSuite is available through
the "module" package. To set up your environment for PerfSuite
with "module", use one of the following commands:
module load perfsuite
module load perfsuite/<version> (for a specific PerfSuite version)
If you are using the PerfSuite API directly
from a Fortran program
and you are compiling with the Intel compiler, you should
link with Intel-compatible versions of PerfSuite libraries that are in the
directory
/usr/apps/tools/perfsuite/<version>/lib/intel,
such as
/usr/apps/tools/perfsuite/1.1.1-forge/lib/intel.
Please refer to NCSA's general user documentation for more
information about using "module".
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/apps/tools/perfsuite/<version>/bin/psrun mpiprogram
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
To use PerfSuite's psrun command with parallel programs,
you should follow these steps:
- For shared-memory (OpenMP/POSIX threads) programs:
-
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
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.illinois.edu