Linaro HPC tools analyze how HPC software runs. It consists of three applications, Linaro DDT, Linaro Performance Reports and Linaro MAP:
The following versions of Linaro HPC tools are available on OSC clusters:
Version | Owens | Pitzer |
---|---|---|
22.0.2 | X* | X* |
You can use module spider linaro-forge
to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.
Linaro DDT, MAP and Performance Reports are available to all OSC users.
Linaro, Commercial
Linaro DDT is a debugger for HPC software that automatically alerts users of memory bugs and divergent behavior. For more features and benefits, visit Linaro Forge - Linaro DDT.
For usage instructions and more iformation, read Linaro DDT.
Linaro MAP produces a detailed profile of HPC software. Unlike Linaro Performance Reports, you must have the source code to run Linaro MAP because its analysis details the software line-by-line. For more features and benefits, visit Linaro Forge - Linaro MAP.
For usage instructions and more information, read Linaro MAP.
Linaro Performance Reports analyzes and documents information on CPU, MPI, I/O, and Memory performance characteristics of HPC software, even third party code, to aid understanding about the overall performance. Although it should not be used all the time, Linaro Performance Reports is recommended to OSC users as a viable option to analyze how an HPC application runs. View an example report to navigate the format of a typical report. For more example reports, features and benefits, visit Linaro Forge - Linaro Performance Reports.
For usage instructions and more information, read Linaro Performance Reports.
As noted in Linaro's User Guide:
Some MPIs, most notably MVAPICH, are not yet supported by Express Launch mode
(in which you can just put “perf-report” in front of an existing mpirun/mpiexec line). These can
still be measured using the Compatibility Launch mode.
Instead of this Express Launch command:
perf-report mpiexec <mpi args> <program> <program args> # BAD
Use the compatibility launch version instead:
perf-report -n <num procs> --mpiargs="<mpi args>" <program> <program args>
Linaro Performance Reports is a simple tool used to generate a single-page HTML or plain text report that presents the overall performance characteristics of HPC applications. It supports pthreads, OpenMP, or MPI code on CPU, GPU, and MIC based architectures.
The versions currently available at OSC are:
Version | Owens | Pitzer | Ascend |
---|---|---|---|
22.0.2 | X | X | X |
23.1 | X* | X* | X* |
You can use module spider linaro-pr
to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.
Linaro Performance Reports is available to all OSC users. We have 64 seats with 64 HPC tokens. Users can monitor the license status here.
Linaro, Commercial
To load the module for the Linaro Performance Reports default version, use module load linaro-pr
. To select a particular software version, use module load linaro-pr/version
. For example, use module load linaro-pr/6.0
to load Linaro Performance Reports version 6.0, provided the version is available on the OSC cluster in use.
You can use your regular executables to generate performance reports. The program can be used to analyze third-party code as well as code you develop yourself. Performance reports are normally generated in a batch job.
To generate a performance report for an MPI program:
module load linaro-pr perf-report -np <num procs> --mpiargs="<mpi args>" <program> <program args>
where <num procs>
is the number of MPI processes to use, <mpi args>
represents arguments to be passed to mpiexec (other than -n or -np), <program>
is the executable to be run and <program args>
represents arguments passed to your program.
For example, if you normally run your program with mpiexec -n 12 wave_c
, you would use
perf-report -np 12 wave_c
To generate a performance report for a non-MPI program:
module load linaro-pr perf-report --no-mpi <program> <program args>
The performance report is created in both html and plain text formats. The file names are based on the executable name, number of processes, date and time, for example, wave_c_12p_2016-02-05_12-46.html
. To open the report in html format use
firefox wave_c_12p_2016-02-05_12-46.html
For more details, download the Linaro Performance Reports User Guide.
Linaro Performance Reports can be used for CUDA codes. If you have an executable compiled with the CUDA library, you can launch Linaro Performance Reports with
perf-report {executable}
For more information, please read the section 6.10 of the Linaro Performance Reports User Guide.
Linaro MAP is a full scale profiler for HPC programs. We recommend using Linaro MAP after reviewing reports from Linaro Performance Reports. MAP supports pthreads, OpenMP, and MPI software on CPU, GPU, and MIC based architectures.
The Linaro MAP versions currently available at OSC are:
Version | Owens | Pitzer | Ascend |
---|---|---|---|
22.0.2 | X | X | X |
23.1 | X* | X* | X* |
You can use module spider linaro-map
to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.
Linaro MAP is available to all OSC users. We have 64 seats with 80 HPC tokens. Users can monitor the Linaro License Server Status.
Linaro, Commercial
To load the default version of the Linaro MAP module, use module load linaro-map
. To select a particular software version, use module load linaro-map/version
. For example, use module load linaro-map/6.0
to load Linaro MAP version 6.0, provided the version is available on the cluster in use.
Note: Before you run MAP from the command line for the first time, open MAP as a GUI from OnDemand to configure with appropriate settings for your environment.
Profiling HPC software with Linaro MAP typically involves three steps:
Regular executables can be profiled with Linaro MAP, but source code line detail will not be available. You need executables with debugging information to view source code line detail: re-compile your code with a -g
option added among the other appropriate compiler options. For example:
mpicc wave.c -o wave -g -O3
This executable built with the debug flag can be used for Linaro Performance Reports as well.
Note: The -g
flag turns off all optimizations by default. For profiling your code you should use the same optimizations as your regular executable, so explicitly include the -On
flag, where n is your normal level of optimization, typically -O2
or -O3
, as well as any other compiler optimization options.
Profiles are normally generated in a batch job. To generate a MAP profile for an MPI program:
module load linaro-map map --profile -np <num proc> --mpiargs="<mpi args>" <program> <program args>
where <num procs>
is the number of MPI processes to use, <mpi args>
represents arguments to be passed to srun (other than -n), <program>
is the executable to be run and <program args>
represents arguments passed to your program.
For example, if you normally run your program with mpiexec -n 12 wave_c
, you would use
map --profile -np 12 wave_c
To profile a non-MPI program:
module load linaro-map map --profile --no-mpi <program> <program args>
The profile data is saved in a .map file in your current directory.
As a result of this step, a .map file that is the profile data file is created in your current directory. The file name is based on the executable name, number of processes, date and time, for example, wave_c_12p_2016-02-05_12-46.map
.
For more details on using Linaro MAP, refer to the Linaro Forge User Guide.
You can open the profile data file using a client running on your local desktop computer. For client installation and usage instructions, please refer to the section: Client Download and Setup. This option typically offers the best performance.
Alternatively, you can run MAP in interactive mode, which launches the graphical user interface (GUI). For example:
map wave_c_12p_2016-02-05_12-46.map
For the GUI application, one should use an OnDemand VDI (Virtual Desktop Interface) or have X11 forwarding enabled (see Setting up X Windows). Note that X11 forwarding can be distractingly slow for interactive applications.
Linaro MAP can be used for CUDA codes. If you have an executable compiled with the CUDA library, you can launch Linaro MAP with
map {executable}
For more information, please read the Chapter 15 of the Linaro Forge User Guide.
To download the client, go to the Linaro website and choose the appropriate Linaro Forge remote client download for Windows, Mac, or Linux. For Windows and Mac, just double click on the downloaded file and allow the installer to run. For Linux, extract the tar file using the command tar -xf file_name
and run the installer in the extracted file directory with ./installer
. Please contact OSC Help, if you have any issues on downloading the client.
After installation, you can configure the client as follows:
Open the client program. For Windows or Mac, just click the desktop icon or navigate to the application through its file path. For Linux use the command {linaro-forge-path}/bin/map
.
/usr/local/linaro/forge-{version}
, specifying the Linaro Forge version number that created the data profile file you are attempting to view. For example, /usr/local/linaro/forge-7.0
for Linaro Forge version 7.0.This login configuration is needed only for the first time of use. In subsequent times, you can just select your profile.
After login, click on LOAD PROFILE DATA FILE. This opens a file browser of your home directory on the OSC cluster you logged onto. Go to the directory that contains the .map file and select it. This will open the file and allow you to navigate the source code line-by-line and investigate the performance characteristics.
A license is not required to simply open the client, so it is possible to skip 2. Configure the client, if you download the profile data file to your desktop. You can then open it by just selecting LOAD PROFILE DATA FILE and navigating through a file browser on your local system.
Linaro DDT is a graphical debugger for HPC applications. It supports pthreads, OpenMP, or MPI code on CPU, GPU, and MIC based architectures.
The Linaro DDT versions currently available at OSC are:
Version | Owens | Pitzer | Ascend |
---|---|---|---|
22.0.2 | X | X | X |
23.1 | X* | X* | X* |
You can use module spider linaro-ddt
to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.
Linaro DDT is available to all OSC users. We have 64 seats with 80 HPC tokens. Users can monitor the Linaro License Server Status.
Linaro, Commercial
To load the module for the Linaro DDT default version, use module load linaro-ddt
. To select a particular software version, use module load linaro-ddt/version
. For example, use module load linaro-ddt/23.1
to load Linaro DDT version 23.1, provided the version is available on the OSC cluster in use.
Note: Before you run DDT from the command line for the first time, open DDT as a GUI from OnDemand to configure with appropriate settings for your environment.
DDT debugs executables to generate DDT reports. The program can be used to debug third-party code as well as code you develop yourself. DDT reports are normally generated in a batch job.
To generate a DDT report for an MPI program:
module load linaro-ddt ddt --offline -np <num procs> --mpiargs="<mpi args>" <program> <program args>
where <num procs>
is the number of MPI processes to use, <mpi args>
represents arguments to be passed to mpiexec (other than -n or -np), <program>
is the executable to be run and <program args>
represents arguments passed to your program.
For example, if you normally run your program with mpiexec -n 12 wave_c
, you would use
ddt --offline -np 12 wave_c
To debug a non-MPI program:
module load linaro-ddt ddt --offline --no-mpi <program> <program args>
The DDT report is created in html format. The file names are based on the executable name, number of processes, date and time, for example, wave_c_12p_2016-02-05_12-46.html
. To open the report use
firefox wave_c_12p_2016-02-05_12-46.html
To debug with the DDT GUI remove the --offline
option. For example, to debug the MPI program above, use
ddt -np 12 wave_c
For a non-MPI program:
ddt --no-mpi <program> <program args>
This will open the DDT GUI, enabling interactive debugging options.
For the GUI application, one should use an OnDemand VDI (Virtual Desktop Interface) or have X11 forwarding enabled (see Setting up X Windows). Note that X11 forwarding can be distractingly slow for interactive applications.
For more details, see the Linaro DDT developer page.
DDT can be used for CUDA codes. If you have an executable compiled with the CUDA library, you can launch Linaro Performance Reports with
ddt {executable}
For more information, please read the chapter 14 of the Linaro Forge User Guide.