HACKING: update language about developer builds
Этот коммит содержится в:
родитель
cb1837e595
Коммит
361f931967
74
HACKING
74
HACKING
@ -8,7 +8,7 @@ Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|||||||
University of Stuttgart. All rights reserved.
|
University of Stuttgart. All rights reserved.
|
||||||
Copyright (c) 2004-2005 The Regents of the University of California.
|
Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
Copyright (c) 2008-2016 Cisco Systems, Inc. All rights reserved.
|
||||||
Copyright (c) 2013 Intel, Inc. All rights reserved.
|
Copyright (c) 2013 Intel, Inc. All rights reserved.
|
||||||
$COPYRIGHT$
|
$COPYRIGHT$
|
||||||
|
|
||||||
@ -24,60 +24,34 @@ source code form, most likely through a developer's tree (i.e., a
|
|||||||
Git clone).
|
Git clone).
|
||||||
|
|
||||||
|
|
||||||
Debugging vs. Optimized Builds
|
Developer Builds: Compiler Pickyness by Default
|
||||||
==============================
|
===============================================
|
||||||
|
|
||||||
If you are building Open MPI from a Git clone, the default build
|
If you are building Open MPI from a Git clone (i.e., there is a ".git"
|
||||||
includes a lot of debugging features. This happens automatically when
|
directory in your build tree), the default build includes extra
|
||||||
when configure detects the hidden ".git" Git meta directory (that is
|
compiler pickyness, which will result in more compiler warnings than
|
||||||
present in all Git clones) in your source tree, and therefore
|
in non-developer builds. Getting these extra compiler warnings is
|
||||||
activates a number of developer-only debugging features in the Open
|
helpful to Open MPI developers in making the code base as clean as
|
||||||
MPI code base.
|
possible.
|
||||||
|
|
||||||
By definition, debugging builds will perform [much] slower than
|
Developers can disable this picky-by-default behavior by using the
|
||||||
optimized builds of Open MPI. You should *NOT* conduct timing tests
|
--disable-picky configure option. Also note that extra-picky compiles
|
||||||
or try to run production performance numbers with debugging builds.
|
do *not* happen automatically when you do a VPATH build (e.g., if
|
||||||
|
".git" is in your source tree, but not in your build tree).
|
||||||
|
|
||||||
If you wish to build an optimized version of Open MPI from a
|
Prior versions of Open MPI would automatically activate a lot of
|
||||||
developer's checkout, you have three main options:
|
(performance-reducing) debugging code by default if ".git" was found
|
||||||
|
in your build tree. This is no longer true. You can manually enable
|
||||||
|
these (performance-reducing) debugging features in the Open MPI code
|
||||||
|
base with these configure options:
|
||||||
|
|
||||||
1. Use the "--with-platform=optimized" switch to configure. This is
|
--enable-debug
|
||||||
the preferred (and probably easiest) method. For example:
|
--enable-mem-debug
|
||||||
|
--enable-mem-profile
|
||||||
|
|
||||||
shell$ git clone git@github.com:open-mpi/ompi.git
|
NOTE: These options are really only relevant to those who are
|
||||||
shell$ cd ompi
|
developing Open MPI itself. They are not generally helpful for
|
||||||
shell$ ./autogen.pl
|
debugging general MPI applications.
|
||||||
shell$ mkdir build
|
|
||||||
shell$ cd build
|
|
||||||
shell$ ../configure --with-platform=optimized ...
|
|
||||||
[...lots of output...]
|
|
||||||
shell$ make all install
|
|
||||||
|
|
||||||
2. Use a VPATH build. Simply build Open MPI from a different
|
|
||||||
directory than the source tree -- one where the .git subdirectory
|
|
||||||
is not present. For example:
|
|
||||||
|
|
||||||
shell$ git clone git@github.com:open-mpi/ompi.git
|
|
||||||
shell$ cd ompi
|
|
||||||
shell$ ./autogen.pl
|
|
||||||
shell$ mkdir build
|
|
||||||
shell$ cd build
|
|
||||||
shell$ ../configure ...
|
|
||||||
[...lots of output...]
|
|
||||||
shell$ make all install
|
|
||||||
|
|
||||||
3. Manually specify configure options to disable all the debugging
|
|
||||||
options (note that this is exactly what "--with-platform=optimized"
|
|
||||||
does behind the scenes). You'll need to carefully examine the
|
|
||||||
output of "./configure --help" to see which options to disable.
|
|
||||||
They are all listed, but some are less obvious than others (they
|
|
||||||
are not listed here because it is a changing set of flags; by
|
|
||||||
Murphy's Law, listing them here will pretty much guarantee that
|
|
||||||
this file will get out of date):
|
|
||||||
|
|
||||||
shell$ ./configure --disable-debug ...
|
|
||||||
[...lots of output...]
|
|
||||||
shell$ make all install
|
|
||||||
|
|
||||||
|
|
||||||
Use of GNU Autoconf, Automake, and Libtool (and m4)
|
Use of GNU Autoconf, Automake, and Libtool (and m4)
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user