Allinea Performance Reports

Allinea Performance Reports is a performance evaluation tool that provides a scalable and effective way to understand and analyze the performance of applications executed on high-performance systems. Allinea Performance Reports can be used with any application - no source code, recompilation or instrumentation is needed. The main objective of Allinea Performance Reports is to determine whether the code fully utilizes the system where it is executed and to help developers identify application bottlenecks and possible optimizations.

As a result Allinea Performance Reports produces single HTML page report with a characterization of the evaluated application. The report contains information about the application peak memory usage, and the time spent in CPU, MPI/OpenMP and I/O communications. Moreover, the report includes information about why the concrete application is spending too much time in a particular process and gives tuning advices and suggestions of possible application improvements. Allinea Performance Reports has low runtime overhead of less than 5%.

Using Allinea Performance Reports on HCC

The Holland Computing Center owns 512 Allinea Performance Reports licenses that can be used to evaluate applications executed on the clusters.
In order to use Allinea Performance Reports on HCC, the appropriate module needs to be loaded first. To load the module on, use

module load allinea/5.0

Once the module is loaded, Allinea Performance Reports runs by adding the perf-report command in front of the standard application command.

Basic Allinea Performance Reports Usage

The basic usage of `perf-report is:

perf-report usage
perf-report [OPTION...](mpirun|mpiexec|aprun|...) [MPI_ARGS] PROGRAM [PROGRAM_ARGS]

For example, the command below shows how to run perf-report with the application hello_world:

perf-report example
[<username>@login.swan ~]$ perf-report ./hello-world

Stdin redirection

If your program normally uses the ‘<’ syntax to redirect standard in to read from a file, you must use the --input option to the perf-reportcommand instead.

perf-report stdin redirection
[<username>@login.swan ~]$ perf-report --input=my_input.txt ./hello-world

Allinea Performance Reports Options

More perf-report options can be seen by using:

perf-report options
[<username>@login.swan ~]$ perf-report --help

Some of the most useful options are:

perf-report useful options
--input=FILE (pass the contents of FILE to the target's stdin)
--nompi, --no-mpi (run without MPI support)
--mpiargs=ARGUMENTS (command line arguments to pass to mpirun)
--nodes=NUMNODES (configure the number of nodes for MPI jobs)
--openmp-threads=NUMTHREADS (configure the number of OpenMP threads for the target)
-n, --np, --processes=NUMPROCS (specify the number of MPI processes)
--procs-per-node=PROCS (configure the number of processes per node for MPI jobs)

The following pages

show how to run Allinea Performance Reports with applications using OpenMP, MPI and standard input/output respectively.  

Currently, Allinea Performance Reports works best with compiled binaries of an application (for some perl/python files perf-report needs to be added in the actual file).