Running DDT, MAP and PR jobs

Preparing your code | Client interface setup | Running DDT and MAP | Performance Reports

The Allinea Forge tools, DDT and MAP, are installed on Cheyenne for debugging, profiling, and optimizing code.

Follow the procedures below to configure the DDT and MAP client interface on your local machine and then start your debugging and profiling jobs. We recommend using the client software to get the best performance, but the tools also run from the Cheyenne command line interface.

Performance Reports is another Allinea tool for Cheyenne users. It summarizes the performance of HPC application runs. Get details and a sample batch script for generating reports below.

Your job's memory footprint increases when you use these tools, especially when you use MAP. If your job normally uses most of the memory on a node, you might need to distribute your cores across more nodes to avoid running out of memory.

MAP and PR users on Cheyenne are likely to experience long analysis times when profiling MPI code that uses SGI MPT. The cause is being investigated.

Preparing your code

Include the -g option when you compile your code for debugging with DDT or profiling with MAP. See our Compiling code documentation for the compilation commands to use.

Do not move or remove the source code, binary, or executable files from the directory or directories in which you compiled them.

Review the following Cheyenne-specific documentation and the relevant Allinea user’s guide, which you can download from the Allinea product documentation.


Client interface setup

The client software version that you use locally and the server version that you use on Cheyenne must be the same. We recommend using the latest version that is available on Cheyenne. Run module av allinea-forge to identify the latest version.

Procedure

  • Download the client software from the Allinea web site.
  • Install and start the client on your local machine.
  • From the “Remote Launch” menu (see image), select Configure.

Allinea home screen

  • Configure as shown in the following image. The configuration will apply to both DDT and MAP, so you only need to do it once.
  • Enter your_username@cheyenne.ucar.edu in the “Host Name” field.
  • Then, fill in the “Remote Installation Directory” field. You can copy the  text from here and change the version number to match the version you are using:
/glade/u/apps/ch/opt/allinea-forge/7.0.4/gnu/6.3.0

Leave the "Remote Script" field blank.

Allinea configuration

  • Click OK.

Running DDT and MAP

Prepare a job script. Specify the regular queue and customize the script with your own project code, job name, and so on.

On the last line of your script, replace mpiexec_mpt with ddt --connect (or map --connect).

ddt --connect ./myjob_f

Submit your job when indicated below.

Procedure

Allinea run Cheyenne

  • When the following dialog box appears, click Show Terminal so you can authenticate. If you wait too long to authenticate, the connection will time out.

Allinea connecting

  • Authenticate by entering your YubiKey or CRYPTOCard token response.

Allinea authentication

  • After logging in, you will be returned to your normal terminal window, where you can load the Allinea module and other modules that you need. (Some users include the module load commands in their job scripts.)

module load allinea-forge
  • Submit your job script on your command line.

qsub myscript.bash
  • When your job starts, the Allinea Forge GUI will show that a “Reverse Connect Request” has been made. Accept the request to continue. 

Allinea reverse connect

  • A “Run” window will open, displaying settings imported from your job script. Click Run.

  • The DDT (or MAP) window will open.

Allinea DDT screen

  • Quit when you’re finished so the license is available to other users.

Also see: Profiling a subset of your code with Allinea MAP


Performance Reports

To generate a report on the performance of your program, submit a batch job to run it. You do not need to compile it with the -g debug option first.

Modify your batch script to load the allinea-reports module that you want to use and include perf-report as shown in the sample scripts below.

When your job runs, the output will include both text and HTML report files.

See the Allinea product documentation and training page for additional information.

Sample tcsh script

#!/bin/tcsh
#PBS -N prjob
#PBS -A project_code
#PBS -l walltime=01:00:00
#PBS -q regular
#PBS -j oe
#PBS -l select=2:ncpus=36:mpiprocs=36
#PBS -m abe
#PBS -M email_address

module load allinea-reports/7.0.4

mkdir -p /glade/scratch/username/temp
setenv TMPDIR /glade/scratch/username/temp

### Run the executable
perf-report -mpi -n 72 ./executable_name.exe

Sample bash script

#!/bin/bash
#PBS -N prjob
#PBS -A project_code 
#PBS -l walltime=01:00:00 
#PBS -q regular #PBS -j oe 
#PBS -l select=2:ncpus=36:mpiprocs=36 
#PBS -m abe #PBS -M email_address

module load allinea-reports/7.0.4

mkdir -p /glade/scratch/username/temp
export TMPDIR=/glade/scratch/username/temp

### Run the executable
perf-report -mpi -n 72 ./executable_name.exe