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%.
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.
The basic usage of `perf-report
is:
perf-report [OPTION...] PROGRAM [PROGRAM_ARGS]
or
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
:
[<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-report
command instead.
[<username>@login.swan ~]$ perf-report --input=my_input.txt ./hello-world
More perf-report options can be seen by using:
[<username>@login.swan ~]$ perf-report --help
Some of the most useful options are:
--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).