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.
Hi,
ReplyDeleteThank 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,
make sure you have g++ installed and the path is set properly
ReplyDeleteHey, does IPM give profiling results for c++ code?
ReplyDelete