Profiling using IPM and HPC-X
This port explains how to using IPM and HPC-X to profile applications. IPM was prebuilt and included in HPC-X.
Install HPC-X
For Niagara cluster, download HPC-X v2.7.
wget https://content.mellanox.com/hpc/hpc-x/v2.7/hpcx-v2.7.0-gcc-MLNX_OFED_LINUX-4.7-1.0.0.1-redhat7.6-x86_64.tbz
For Bridges-2 cluster, download latest HPC-X from https://developer.nvidia.com/networking/hpc-x .
Install HPC-X by uncompressing the tarball to a folder of your choice.
Build an application using HPC-X
module use <path to hpc-x>/modulefiles
module load hpcx
mpicc -o test test.c
Run the application using IPM + HPC-X
export IPM_DIR=$HPCX_IPM_DIR
IPM_KEYFILE=$IPM_DIR/etc/ipm_key_mpi
export IPM_REPORT=full
export IPM_LOG=full
export IPM_STATS=all
export IPM_LOGWRITER=serial
mpirun -np <# nproc> -x LD_PRELOAD=$IPM_DIR/lib/libipm.so:$IPM_DIR/lib/libipmf.so <MPI flags> ./test
Generating profile GUI outputs
If the above step was successful, it’d create an xml file, <filename>.ipm.xml.
Download and install ploticus, http://ploticus.sourceforge.net/doc/download.html .
Set the path: export PATH=<path to ploticus>/bin:$PATH
$HPCX_IPM_DIR/bin/ipm_parse -html <filename>.ipm.xml
If successful, it'd create a folder with profile outputs and index.html.
Open index.html using a web browser and save the GUI output as a pdf file for submission.
Sample GUI output:
Â