Skip to content
Snippets Groups Projects
allinea-performance-reports.md 2.23 KiB
Newer Older
Lukáš Krupčík's avatar
Lukáš Krupčík committed
Allinea Performance Reports
Lukáš Krupčík's avatar
Lukáš Krupčík committed
===========================

Lukáš Krupčík's avatar
Lukáš Krupčík committed
##quick application profiling
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Introduction
------------
Lukáš Krupčík's avatar
Lukáš Krupčík committed
Allinea Performance Reports characterize the performance of HPC application runs. After executing your application through the tool, a synthetic HTML report is generated automatically, containing information about several metrics along with clear behavior statements and hints to help you improve the efficiency of your runs.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Lukáš Krupčík's avatar
Lukáš Krupčík committed
The Allinea Performance Reports is most useful in profiling MPI programs.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Our license is limited to 64 MPI processes.

Modules
-------
Allinea Performance Reports version 6.0 is available

Lukáš Krupčík's avatar
Lukáš Krupčík committed
```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ module load PerformanceReports/6.0
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Lukáš Krupčík's avatar
Lukáš Krupčík committed
The module sets up environment variables, required for using the Allinea Performance Reports. This particular command loads the default module, which is performance reports version 4.2.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Usage
-----
!!! Note "Note"
	Use the the perf-report wrapper on your (MPI) program.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Instead of [running your MPI program the usual way](../mpi/), use the the perf report wrapper:
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Lukáš Krupčík's avatar
Lukáš Krupčík committed
```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ perf-report mpirun ./mympiprog.x
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```
Lukáš Krupčík's avatar
Lukáš Krupčík committed

The mpi program will run as usual. The perf-report creates two additional files, in *.txt and *.html format, containing the performance report. Note that [demanding MPI codes should be run within the queue system](../../resource-allocation-and-job-execution/job-submission-and-execution/).
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Example
-------
David Hrbáč's avatar
David Hrbáč committed
In this example, we will be profiling the mympiprog.x MPI program, using Allinea performance reports. Assume that the code is compiled with Intel compilers and linked against Intel MPI library:
Lukáš Krupčík's avatar
Lukáš Krupčík committed

First, we allocate some nodes via the express queue:

Lukáš Krupčík's avatar
Lukáš Krupčík committed
```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ qsub -q qexp -l select=2:ncpus=16:mpiprocs=16:ompthreads=1 -I
    qsub: waiting for job 262197.dm2 to start
    qsub: job 262197.dm2 ready
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Then we load the modules and run the program the usual way:

Lukáš Krupčík's avatar
Lukáš Krupčík committed
```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ module load intel impi allinea-perf-report/4.2
    $ mpirun ./mympiprog.x
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Now lets profile the code:

Lukáš Krupčík's avatar
Lukáš Krupčík committed
```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ perf-report mpirun ./mympiprog.x
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```
Lukáš Krupčík's avatar
Lukáš Krupčík committed

Performance report files [mympiprog_32p*.txt](mympiprog_32p_2014-10-15_16-56.txt) and [mympiprog_32p*.html](mympiprog_32p_2014-10-15_16-56.html) were created. We can see that the code is very efficient on MPI and is CPU bounded.