IPM Hompepage
Overview | Profiling vs. Tracing | Installation | Using IPM | Implementation | References
 


IPM Installation Guide

Obtaining a Copy of IPM

Access is provided through our sourceforge site as released versions and via CVS. For the brave, direct access to the CVS repository is available:
  •  cvs -d:pserver:anonymous@ipm-hpc.cvs.sourceforge.net:/cvsroot/ipm-hpc login
     cvs -z3 -d:pserver:anonymous@ipm-hpc.cvs.sourceforge.net:/cvsroot/ipm-hpc co -P ipm
     

Quick Installation

cd ipm; ./configure; make
mpicc my_mpi_code.c -L/path/to/ipm/lib -lipm
More detailed instructions below, including compilation with PAPI support.

Default Installation

cd ipm
./configure # this should provide a basic working configuration
./configure -help # will provide a full list of options
Commonly used options are:
--with-compiler= GNU|IBM|INTEL|PATH|PGI|CRAY..
For machines with more than one compiler installed it is important that you specify the compiler you want to build IPM with - this should be the same one that the MPI library was compiled with. (Note you can also set the complier via usual the environment variables.)
--prefix=/path/to/where/you/want/ipm/installed
--with-arch=POWER|X86|AMD64|BGL|XT3|XT4|XT5|ALTIX
Nb. For a Cray XT system (XT4/XT5) it is essential that this flag is specified or IPM will not work. If you are cross-compiling ie. the architecture of the compute portion of your machine is different from the login node the configure process can cause problems. Please contact us for help if you encounter such problems. IPM has two usage modes - either a user can relink their code to the IPM library or they can load the IPM library dynamically at runtime. If you plan to use IPM as a static library i.e. link applications with -lipm
make
If you plan to use IPM as a dynamic library i.e. LD_PRELOAD libipm.so at runtime
make shared
Currently on platforms that use static binaries (Cray XT and Blue-Gene) the shared mode of usage is not possible.
make test
Nb. This does not work on all systems since the route to parallel execution is very site specific. If "make test" does not work then try linking directly against libipm.a and running your code.
make install

Installation with PAPI support

If PAPI is already installed using it maybe as simple as issuing a "module load papi" command - please consult your local documentation. To install PAPI yourself see the PAPI website http://icl.cs.utk.edu/papi.
--with-cpu= OPTERON | CORE2DUO| PENTIUM_M | WOODCREST | ITANIUM2 | POWER5

OPTERON   = any AMD opteron
CORE2DUO  = any Intel chip with 4 counters available
WOODCREST = any Intel chip with 2 counters (including Harpertown)
ITANIUM2  = Intel Itanium with 4 counters
If you don't know the number of hardware counters on your platform it is obtainable from the "papi_avail" command which is usually installed in the /path/to/papi/bin directory.
 --with-papiroot=/path/to/papi
If you used the "module load papi" method above your probably don't need to specify this.

Installation FAQ

  • My installation fails with "checking for working IPM macros in ipm.h...no"
  • You forgot to specify a valid CPU (--with-cpu) or the CPU you specified is not supported in IPM.

  • I type "make shared" and get "no shared objects found-please recompile with -fPIC"
  • There is no shared object version of MPI installed on your machine (libmpi.so or equivalent). Either use IPM in static linking mode (-L/path/to/ipm/lib -lipm) or consult your local system administrator.


Last changed: Fri, 04 Sep 2009 17:28:45 +0000 on shell-21011 by fuerling
Website maintained by: The IPM developers. To get help send email to: