Intel® Advisor Help
With Intel® Advisor, you can analyze parallel tasks running on a cluster to examine performance of your MPI application. Use the Intel® MPI gtool with mpiexec or mpirun to invoke the advisor command and spawn MPI processes across the cluster.
You can analyze MPI applications only through the command line interface, but you can view the result through the standalone GUI, as well as the command line.
Consider the following when running collections for an MPI application:
You can use the Intel Advisor with the Intel® MPI Library and other MPI implementations, but be aware of the following details:
You may need to adjust the command examples in this section to work for non-Intel MPI implementations. For example, adjust commands provided for process ranks to limit the number of processes in the job.
An MPI implementation needs to operate in cases when there is the Intel Advisor process (advisor) between the launcher process (mpiexec) and the application process. This means that the communication information should be passed using environment variables, as most MPI implementations do. Intel Advisor does not work on an MPI implementation that tries to pass communication information from its immediate parent process.
You can use Intel Advisor to generate the command line for collecting results on multiple MPI ranks. To do that,
Use the -gtool option of mpiexec with Intel® MPI Library 5.0.2 and higher:
$ mpiexec –gtool "advisor --collect=<analysis-type> --project-dir=<project-dir>:<ranks-set>" -n <N> <application-name> [myApplication-options]
where:
gtool option of mpiexec allows you to select MPI ranks to run analyses for. This can decrease overhead.
For detailed syntax, refer to the Intel® MPI Library Developer Reference for Linux*OS or Intel® MPI Library Developer Reference for Windows* OS.
Use mpiexec with the advisor command to spawn processes across the cluster and collect data about the application.
Each process has a rank associated with it. This rank is used to identify the result data.
To collect performance or dependencies data for an MPI program with Intel Advisor, the general form of the mpiexec command is:
$ mpiexec -n <N> "advisor --collect=<analysis-type> --project-dir=<project-dir> --search-dir src:r=<source-dir>" myApplication [myApplication-options]
where:
By default, Intel Advisor analyzes performance of a whole application. In some cases, you may want to focus on the most time consuming section or disable collection for the initialization or finalization phases. Intel Advisor supports the MPI region control with the MPI_Pcontrol() function. This function allows you to enable and disable collection for specific application regions in the source code.
To use the function, add it to the your application source code as follows:
According to the MPI standard, MPI_Pcontrol() accepts other numbers as arguments. For the Intel Advisor, only the 0 and 1 are relevant.
You can also use MPI_Pcontrol() to mark specific code regions. Use MPI_Pcontrol(<region>) at the beginning of the region, and MPI_Pcontrol(-<region>) at the end of the region, where <region> is 5 and higher.
As a result of collection, Intel Advisor creates a number of result directories in the directory specified with --project-dir. The nested result directories are named as rank.0, rank.1, ... rank.n, where the numeric suffix n corresponds to the MPI process rank.
To view the performance or dependency results collected for a specific rank, you can either open a result project file (*.advixeproj) that resides in the --project-dir via the Intel Advisor GUI, or run the Intel Advisor CLI report:
$ advisor --report=<analysis-type> --project-dir=<project-dir>:<ranks-set>
You can view only one rank's results at a time.
For Offload Modeling, you do not need to run the --report command. The reports are generated automatically after you run performance modeling. See Model MPI Application Performance on GPU for details.
For more details on analyzing MPI applications, see the Intel MPI Library and online MPI documentation on the Intel® Developer Zone at https://software.intel.com/content/www/us/en/develop/tools/mpi-library/get-started.html
Hybrid applications: Intel MPI Library and OpenMP* on the Intel Developer Zone at https://software.intel.com/content/www/us/en/develop/articles/hybrid-applications-intelmpi-openmp.html