Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved. Copyright (c) 2004-2005 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, University of Stuttgart. All rights reserved. Copyright (c) 2004-2005 The Regents of the University of California. All rights reserved. Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. $COPYRIGHT$ Additional copyrights may follow $HEADER$ For More Information ==================== This file is a *very* short overview of building and installing Open MPI, and building MPI applications. Much more information is available on the Open MPI web site (e.g., see the FAQ section): http://www.open-mpi.org/ Developer Builds ================ If you have checked out a DEVELOPER'S COPY of Open MPI (i.e., you cloned from Git), you should read the HACKING file before attempting to build Open MPI. You must then run: shell$ ./autogen.pl You will need very recent versions of GNU Autoconf, Automake, and Libtool. If autogen.pl fails, read the HACKING file. If anything else fails, read the HACKING file. Finally, we suggest reading the HACKING file. *** NOTE: Developer's copies of Open MPI typically include a large performance penalty at run-time because of extra debugging overhead. User Builds =========== Building Open MPI is typically a combination of running "configure" and "make". Execute the following commands to install the Open MPI system from within the directory at the top of the tree: shell$ ./configure --prefix=/where/to/install [...lots of output...] shell$ make all install If you need special access to install, then you can execute "make all" as a user with write permissions in the build tree, and a separate "make install" as a user with write permissions to the install tree. Compiling support for various networks or other specific hardware may require additional command ling flags when running configure. See the README file for more details. Note that VPATH builds are fully supported. For example: shell$ tar xf openmpi-X.Y.Z.tar.gz shell$ cd openmpi-X.Y.Z shell$ mkdir build shell$ cd build shell$ ../configure ...your options... [...lots of output...] shell$ make all install Parallel builds are also supported (although some versions of "make", such as GNU make, will only use the first target listed on the command line when executable parallel builds). For example (assume GNU make): shell$ make -j 4 all [...lots of output...] shell$ make install Parallel make is generally only helpful in the build phase (i.e., "make all"); the installation process (i.e., "make install") is mostly serial and does not benefit much from parallelization. Compiling MPI Applications ========================== MPI applications should be compiled using the Open MPI "wrapper" compilers: C programs: mpicc your-code.c C++ programs: mpiCC your-code.cc or mpic++ your-code.cc (for case-insensitive filesystems) Fortran programs: mpifort your-code.f90 These compilers simply add various command line flags (such as -lmpi) and invoke a back-end compiler; they are not compilers in themselves.