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.

  1. Download and install ploticus, http://ploticus.sourceforge.net/doc/download.html .

  2. Set the path: export PATH=<path to ploticus>/bin:$PATH

  3. $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: