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