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.
