Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana 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.