This page is for developers
who want to work on the internals of Open MPI itself.
If you are a
general user or system administrator looking to simply download
and install Open MPI, please
After obtaining a successful Git clone, the
following tools are required for developers to compile Open MPI from
its repository sources (users who download Open MPI tarballs do
not need these tools - they are only required for
developers working on the internals of Open MPI itself):
The following table lists the versions that are used to make
nightly snapshot and official release Open MPI tarballs. Other
versions of the tools may work for some (but almost
certainly not all) platforms, but the ones listed below are
the versions that we know work across an extremely wide
variety of platforms and environments.
configure.ac scripts tend to be a bit lenient and enforce
slightly older minimum versions than the ones listed below.
This is because such older versions still make usable Open MPI builds
on many platforms — especially Linux on x86_64 with GNU
compilers — and are convenient for developers whose Linux distro may
not have as recent as the versions listed below (but are recent enough
to produce a working version for their platform).
To be clear: the versions listed below are required to
support a wide variety of platforms and environments, and are used to
make nightly and official release tarballs. When building Open MPI,
YMMV when using versions older than those listed below —
especially if you are not building on Linux x86_64 with the GNU
compilers. Using older versions is unsupported. If you run into
problems, upgrade to at least the versions listed below.
|Open MPI Release
|v1.0||NA||2.58 - 2.59||1.7 - 1.9.6||1.5.16 - 1.5.22||2.5.4||NA
|v1.1||NA||2.59||1.9.6||1.5.16 - 1.5.22||2.5.4||NA
|v1.2||NA||2.59||1.9.6||1.5.22 - 2.1a||2.5.4||NA
|v1.5 thru 1.5.4||1.4.13||2.65||1.11.1||2.2.6b||2.5.4||NA
|v1.5.5 and up||1.4.16||2.68||1.11.3||2.4.2||2.5.35||NA
- Other version combinations may work, but are untested
and unsupported. In particular, developers tend to use higher
versions of Autotools for master/development work, and they
usually work fine.
- The v1.4 and v1.5 series had their Automake versions updated on
10 July 2011 (from 1.10.1 to 1.10.3, and 1.11 to 1.11.1,
respectively) due to CVE-2009-4029. This applies to all new
snapshot tarballs produced after this date, and the v1.4 series
as of v1.4.4, and the v1.5 series as of 1.5.4.
- If Autoconf 2.60 (and higher) is used, Automake 1.10 (and higher)
must be used.
master branch and all release branches starting
v1.2 require the use of Libtool 2.x (or
higher) so that Open MPI can build the Fortran 90 module as a
shared library. If (and only if) you intend to not build the
Fortran 90 library or your Fortran 77 and Fortran 90 compilers
have the same name (e.g.,
gfortran), you can use Libtool 1.5.22
to build Open MPI v1.0 through v1.2.x.
- There was a period of time where OMPI nightly trunk snapshot
tarballs were made with a Libtool 2.0
development snapshot. This is now deprecated; Open MPI uses
official Libtool releases (no official Open MPI releases used the
Libtool 2.0 development snapshot).
Although it should probably be assumed, you'll also need a C/C++
compiler. You'll also need a Fortran compiler if you want to build
the Fortran MPI bindings, and a Java compiler if you want to build the
(unofficial) Java MPI bindings.
The HACKING file in the top-level directory of the Open MPI checkout
details how to install the tools listed above and the steps required
to build a developer checkout of Open MPI. It always contains the
most current information on how to build a developer's copy of Open
shell$ ./configure --prefix=$HOME/openmpi-install
[...lots of output...]
This configures Open MPI and tells it to install under
NOTE: By default, when configuring and building
Open MPI from a developer checkout, all
debugging code is enabled. This results in a
significant run-time performance penalty. There are
several options for building an optimized Open MPI; see the HACKING
file for more details.
NOTE: Most Linux distributions and OS X/MacOS
install Flex by default (and this is sufficient). Other operating
systems may provide "lex", but this is not sufficient — flex