_index.md 4.32 KB
Newer Older
Adam Caprez's avatar
Adam Caprez committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
+++
title = "Allinea Performance Reports"
description = "How to use Allinea Performance Reports to profile application on HCC resources."
+++

[Allinea Performance Reports](https://www.arm.com/products/development-tools/server-and-hpc/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
29
licenses** that can be used to evaluate applications executed on the clusters.  
Adam Caprez's avatar
Adam Caprez committed
30
In order to use Allinea Performance Reports on HCC, the appropriate
31
module needs to be loaded first. To load the module on, use
Adam Caprez's avatar
Adam Caprez committed
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

{{< highlight bash >}}
module load allinea/5.0
{{< /highlight >}}

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:

{{% panel theme="info" header="perf-report usage" %}}
{{< highlight bash >}}
perf-report [OPTION...] PROGRAM [PROGRAM_ARGS]
or
perf-report [OPTION...] (mpirun|mpiexec|aprun|...) [MPI_ARGS] PROGRAM [PROGRAM_ARGS]
{{< /highlight >}}
{{% /panel %}}

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

{{% panel theme="info" header="perf-report example" %}}
{{< highlight bash >}}
58
[<username>@login.crane ~]$ perf-report ./hello-world
Adam Caprez's avatar
Adam Caprez committed
59
60
61
62
63
64
65
66
67
68
69
70
71
{{< /highlight >}}
{{% /panel %}}

Stdin redirection

{{% notice info %}}
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.
{{% /notice %}}

{{% panel theme="info" header="perf-report stdin redirection" %}}
{{< highlight bash >}}
72
[<username>@login.crane ~]$ perf-report --input=my_input.txt ./hello-world
Adam Caprez's avatar
Adam Caprez committed
73
74
75
76
77
78
79
80
81
{{< /highlight >}}
{{% /panel %}}

### Allinea Performance Reports Options

More **perf-report** options can be seen by using:

{{% panel theme="info" header="perf-report options" %}}
{{< highlight bash >}}
82
[<username>@login.crane ~]$ perf-report --help
Adam Caprez's avatar
Adam Caprez committed
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
{{< /highlight >}}
{{% /panel %}}

Some of the most useful options are:

{{% panel theme="info" header="perf-report useful options" %}}
{{< highlight bash >}}
--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)
{{< /highlight >}}
{{% /panel %}}


The following pages

-  [Blast with Allinea Performance Reports]({{< relref "blast_with_allinea_performance_reports" >}})
-  [Ray with Allinea Performance Reports]({{< relref "ray_with_allinea_performance_reports" >}})
-  [LAMMPS with Allinea Performance Reports]({{< relref "lammps_with_allinea_performance_reports" >}})

show how to run Allinea Performance Reports with applications using OpenMP, MPI and standard input/output
respectively.
 
{{% notice tip %}}
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).
{{% /notice %}}