Installing Open MPI on Mac OS X

* Updated for Mac OS 10.7 (Lion) - August, 2011 *

Message Passing Interface (MPI) is an application interface that allows processes to communicate by sending and receiving messages. In essence, it facilitates communication when multiple computers/processors/cores are performing distributed calculations. For people familiar with computer clusters, MPI is the interface that helps the compute nodes talk to each other. I don't plan to provide detailed information about MPI and programming practices for using MPI here, but rather the purpose of this page is to help you install one of the freely available MPI implementations (Open MPI) on a computer running Mac OS X.

Why might you consider installing Open MPI? First, many programs that were designed to run distributed across several computers using MPI can now be run on a multi-core modern desktop computer. To me, this is the biggest motivation, since I can test software more easily on my desktop (or laptop) machine than on a cluster. Second, multi-core computers are the future. Almost any machine purchased in the last year or two has multiple processor cores. Why not put them to use?

Anyway, as I said above, I'm here to provide instructions on installing Open MPI on a Mac. I am assuming you're running a recent version of Mac OS X (Lion, Snow Leopard or Leopard) and that you have already installed a compiler suite. If you don't have any compilers installed, you might want to see my page on installing the GNU compilers.

The installation of Open MPI on Mac is surprisingly easy.
  1. Download source code from http://www.open-mpi.org/software/. At the time of posting the current stable release of Open MPI is version 1.4.3.
  2. Copy the archive file to a temporary location to compile it. Open Terminal.app and change directories to the new location of the Open MPI archive. If you downloaded the source code as a .tar.gz file, you can untar/zip it by typing
    tar zxvf openmpi-1.4.3.tar.gz
    which will create a directory called openmpi-1.4.3/. Change directories into the new directory.
  3. Assuming you have some compilers installed, you can now run the configuration script. As mentioned above, if you don't have any compilers installed, you can check out my page on installing the GNU compilers before proceeding. If you only have one set of compilers installed, you can run the configuration script by typing
    ./configure --prefix=/usr/local
    If you would like to install Open MPI someplace other than /usr/local, you can change the directory listed for the prefix flag. If you have multiple compilers installed, you can specify which compilers you would like to use as follows
    ./configure CC=icc CXX=icpc F77=ifort F90=ifort --prefix=/usr/local
    where you specify the C (CC), C++ (CXX), Fortran 77 (F77) and Fortran 90 (F90) compilers with the listed variables.
  4. Assuming the configuration script runs without issue, you can compile the code by typing
    make all
    which will compile the Open MPI libraries/binaries and configure the wrappers for using the specified compilers. This should take a bit...
  5. Again, assuming the code compiles without issue, you can install Open MPI by typing
    sudo make install
    Beware that using sudo can do major damage to your computer if you aren't careful. You can now feel free to delete the temporary Open MPI build directory (e.g., openmpi-1.4.3/) since the code has been installed. If you think you might want to rebuild with different compilers or change the configuration, you may want  to keep this directory around.
So now you should have a functional installation of Open MPI on your Mac. You should be able to compile code that uses MPI by using the Open MPI compiler wrappers (mpicc, mpicxx, mpif77, mpif90) and run MPI-enabled programs with mpiexec. If you try to use the new Open MPI executables and they are not found, it may be that /usr/local/bin (or wherever you specified with the --prefix flag in the configure stage) is not in your $PATH environment variable. You can confirm this by typing
echo $PATH
if you do not see /usr/local/bin listed between the colons, you will need to add it. I describe how to do this at the end of my page on installing the GNU compilers.

For assistance on linking to Open MPI or running MPI-enabled software, check out the Open MPI documentation.