Intel Advisor¶
Intel Advisor provides two workflows to help ensure that Fortran, C, and C++ applications can make the most of modern Intel processors. Advisor contains three key capabilities:
- Vectorization Advisor identifies loops that will benefit most from vectorization, specifies what is blocking effective vectorization, finds the benefit of alternative data reorganizations, and increases the confidence that vectorization is safe.
- Threading Advisor is used for threading design and prototyping and to analyze, design, tune, and check threading design options without disrupting normal code development.
- Advisor Roofline enables visualization of actual performance against hardware-imposed performance ceilings (rooflines) such as memory bandwidth and compute capacity - which provide an ideal roadmap of potential optimization steps.
The links to each capability above provide detailed information regarding how to use each feature in Advisor. For more information on Intel Advisor, visit this page.
Environmental models for Advisor on UL-HPC¶¶
module purge
module load swenv/default-env/v1.2-20191021-production
module load toolchain/intel/2019a
module load perf/Advisor/2019_update4
module load vis/GTK+/3.24.8-GCCcore-8.2.0
Interactive mode¶
# Compilation
$ icc -qopenmp example.c
# Code execution
$ export OMP_NUM_THREADS=16
$ advixe-cl -collect survey -project-dir my_result -- ./a.out
# Report collection
$ advixe-cl -report survey -project-dir my_result
# To see the result in GUI
$ advixe-gui my_result
$ advixe-cl
will list out the analysis types and $ advixe-cl -hlep report
will list out available reports in Advisor.
Batch mode¶
Shared memory programming model (OpenMP)¶
Example for the batch script:
#!/bin/bash -l
#SBATCH -J Advisor
#SBATCH -N 1
###SBATCH -A <project_name>
#SBATCH -c 28
#SBATCH --time=00:10:00
#SBATCH -p batch
module purge
module load swenv/default-env/v1.2-20191021-production
module load toolchain/intel/2019a
module load perf/Advisor/2019_update4
module load vis/GTK+/3.24.8-GCCcore-8.2.0
export OMP_NUM_THREADS=16
advixe-cl -collect survey -project-dir my_result -- ./a.out
Distributed memory programming model (MPI)¶
To compile just MPI
application run $ mpiicc example.c
and for MPI+OpenMP
run $ mpiicc -qopenmp example.c
Example for the batch script:
#!/bin/bash -l
#SBATCH -J Advisor
#SBATCH -N 2
###SBATCH -A <project_name>
#SBATCH --ntasks-per-node=28
#SBATCH --time=00:10:00
#SBATCH -p batch
module purge
module load swenv/default-env/v1.2-20191021-production
module load toolchain/intel/2019a
module load perf/Advisor/2019_update4
module load vis/GTK+/3.24.8-GCCcore-8.2.0
srun -n ${SLURM_NTASKS} advixe-cl --collect survey --project-dir result -- ./a.out
# Report collection
$ advixe-cl --report survey --project-dir result
# Result visualization
$ advixe-gui result
Tip
If you find some issues with the instructions above, please report it to us using support ticket.
Last update: December 2, 2024