forked from openkylin/openmpi
102 lines
3.4 KiB
Plaintext
102 lines
3.4 KiB
Plaintext
|
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.
|