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:
cd ipm; ./configure; make
mpicc my_mpi_code.c -L/path/to/ipm/lib -lipm
More detailed instructions below, including compilation with PAPI support.
./configure # this should provide a basic working configuration
./configure -help # will provide a full list of options
Commonly used options are:
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.)
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
If you plan to use IPM as a dynamic library i.e. LD_PRELOAD libipm.so
Currently on platforms that use static binaries (Cray XT and Blue-Gene)
the shared mode of usage is not possible.
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.
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.
If you used the "module load papi" method above your probably don't
need to specify this.
- My installation fails with "checking for working IPM macros
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.