Friday, July 13, 2012

Install IPM on HPC Cluster

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.


3 comments:

  1. Hi,
    Thank you very much for the post.

    When I tried to configure IPM i got the following error,

    configuring for unknown w/ OS= ARCH=x86 COMPILER=/apps/OpenFOAM/ThirdParty-2.2.2/platforms/linux64/gcc-4.5.2 CPU=
    checking whether the C compiler ( cc ) works...yes
    checking whether the C++ compiler ( cxx ) works...no
    checking whether the C++ compiler ( xlC ) works...no
    checking whether the C++ compiler ( sxCC ) works...no
    checking whether the C++ compiler ( pgCC ) works...no
    checking whether the C++ compiler ( g++ ) works...no
    can't find a C++ compiler.

    I would be grateful if you could help me in this.

    Regards,

    ReplyDelete
  2. make sure you have g++ installed and the path is set properly

    ReplyDelete
  3. Hey, does IPM give profiling results for c++ code?

    ReplyDelete