You copied the Doc URL to your clipboard.

28 Running MAP from the command line

MAP can be run from the command line with the following arguments:

--no-mpi

Run MAP with 1 process and without invoking mpirun, mpiexec, or equivalent.

--queue

Force MAP to submit the job to the queueing system.

--no-queue

Run MAP without submitting the job to the queueing system.

--view=VIEW

Start MAP using VIEW as the default view. VIEW must be one of (main|pthread|openmp). If the selected view is not available, the main view will be displayed.

--export=OUTPUT.json PROFILEDATA.map

Export PROFILEDATA.map to OUTPUT.json in JSON format, without user interaction. For the format specification see 29.1 JSON format.

--profile

Generate a MAP profile but without user interaction. This will not display the MAP GUI. Messages are printed to the standard output and error. The job is not run using the queueing system unless used in conjunction with --queue. When the job finishes a map file is written and its name is printed.

--export-functions=FILE

Export all the profiled functions to FILE. Use this in conjunction with --profile. The output should be CSV file name. Examples:


   map --profile --export-functions=foo.csv ...

--start-after=TIME

Start profiling TIME seconds after the start of your program. Use this in conjunction with --stop-after=TIME to focus MAP on a particular time interval of the run of your program.

--stop-after=TIME

Stop profiling TIME seconds after the start of your program. This will terminate your program and proceed to gather the samples taken after the time given has elapsed.

When running without the GUI, normal redirection syntax can be used to read data from a file as a source for the executable's standard input. Examples:


   cat <input-file> | map --profile ... 
map --profile ... < <input-file>

Normal redirection can also be used to write data to a file from the executable's standard output:


   map --profile ... > <output-file>

For OpenMP jobs, simply use the OMP_NUM_THREADS environment variable (or leave it blank) exactly as you usually would when running your application. There is no need to pass the number of threads to MAP as an argument.


   OMP_NUM_THREADS=8 map --profile ... > <output-file>

--enable-metrics=METRICS
--disable-metrics=METRICS

Allows you to specify comma-separated lists which explicitly enable or disable metrics for which data is to be collected. If the metrics specified cannot be found, or if a metric is both enabled and disabled, an error message is displayed and MAP exits. Metrics which are always enabled or disabled cannot be explicitly disabled or enabled, respectively. A metrics source library which has all its metrics disabled, either in the XML definition or via --disable-metrics, will not be loaded. Metrics which can be explicitly enabled or disabled can be listed using the --list-metrics option.

The enabled/disabled metrics settings do not persist when running MAP without the GUI, so they will need to be specified for each profiling session. When running MAP in GUI mode, the effect of these settings will be displayed in the Metrics section of the run dialog, where the user can further refine their settings. These settings will then persist to the next GUI session.

--cuda-kernel-analysis

Enables CUDA kernel analysis mode, providing line level profiling information on CUDA kernels running on a GPU at the cost of potentially significant overhead. See section 30 .

28.1 Profiling MPMD programs

The easiest way to profile MPMD programs is by using Express Launch to start your application.

To use Express Launch, simply prefix your normal MPMD launch line with map. For example, to profile an MPMD application without user interaction you can use:


   map --profile mpirun -n 1 ./master : -n 2 ./worker

For more information on Express Launch, and compatible MPI implementations, see section 16.1 .

28.1.1 Profiling MPMD programs without Express Launch

The command to create a profile from an MPMD program using MAP is:


   map <map mode> --np=<#processes> --mpiargs=<MPMD command> <one MPMD program>

This example shows how to run MAP without user interaction using the flag --profile:


   map --profile --np=16 --mpiargs="-n 8 ./exe1 : -n 8 ./exe2" ./exe1

First the number of processes used by the MPMD programs is set, in this case 8+8=16. Then an MPMD style command as an mpi argument is specified, followed by one of the MPMD programs.

Was this page helpful? Yes No