Open MPI logo

Source Code Access: Requirements to Build from a Developer Checkout

  |   Home   |   Support   |   FAQ   |  

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 click here.

NOTE: This page applies to Open MPI <= v4.x. Instructions and requirements for building from source for other versions can be found here:

Open MPI's main branch
Open MPI's v5.0.x branch

If you are looking to build branches other than what are listed above,
go to any of the above links and then use the left-hand navigation to select the appropriate version.

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):

Software package Notes URL
Git client Version 1.8.0 or above
GNU m4 See version chart below
GNU autoconf See version chart below
GNU automake See version chart below
GNU libtool See version chart below
Flex See version chart below

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.

NOTE: The and 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 M4 Versions Autoconf Versions Automake Versions Libtool Versions Flex Versions
v1.0NA2.58 - 2.591.7 - -
v1.1NA2.591. -
v1.2NA2.591. - 2.1a2.5.4
v1.5 thru
v1.5.5 and up1.4.162.681.
main See this documentation
If looking for requirements for other Open MPI versions (i.e., >= v5.0.0),
go to the above documentation link and use the left-hand navigation to select the desired version.

Autotools notes:

  1. Other version combinations may work, but are untested and unsupported. In particular, developers tend to use higher versions of Autotools for main/development work, and they usually work fine.
  2. 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.
  3. If Autoconf 2.60 (and higher) is used, Automake 1.10 (and higher) must be used.
  4. The main branch and all release branches starting with 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.
  5. 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 MPI.

shell$ ./configure --prefix=$HOME/openmpi-install
[...lots of output...]

This configures Open MPI and tells it to install under $HOME/openmpi-install.

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 is required.