IPM is a very handy profiling tool to have. It gives a nice overview of the overall performance of a parallel program.
It uses sampling to measure the performance, and thus no changes are required to be made in the source code of the parallel program. There is almost no performance overhead as we are not inserting any code into the parallel program. However, it is not good at getting the nitty gritty details but nonetheless it comes out to be pretty handy and fast.
Installation:
Download the tar from sourceforge and untar in some directory on the cluster.
cd into the directory and configure with the command:
./configure --prefix=/path/for/install --with-compiler=INTEL --with-arch=X86 --with-cpu=OPTERON --with-OS=LINUX
We chose to have IPM as a dynamic library and thus
make shared
installs it in the requested directory.
Usage:
export LD_PRELOAD=/path/to/install/lib/libipm.so
mpirun your program
or if using a batch script, do the same in the script.
It uses sampling to measure the performance, and thus no changes are required to be made in the source code of the parallel program. There is almost no performance overhead as we are not inserting any code into the parallel program. However, it is not good at getting the nitty gritty details but nonetheless it comes out to be pretty handy and fast.
Installation:
Download the tar from sourceforge and untar in some directory on the cluster.
cd into the directory and configure with the command:
./configure --prefix=/path/for/install --with-compiler=INTEL --with-arch=X86 --with-cpu=OPTERON --with-OS=LINUX
We chose to have IPM as a dynamic library and thus
make shared
installs it in the requested directory.
Usage:
export LD_PRELOAD=/path/to/install/lib/libipm.so
mpirun your program
or if using a batch script, do the same in the script.