Skip to content

Commit 361f931

Browse files
committed
HACKING: update language about developer builds
1 parent cb1837e commit 361f931

File tree

1 file changed

+29
-55
lines changed

1 file changed

+29
-55
lines changed

HACKING

Lines changed: 29 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
88
University of Stuttgart. All rights reserved.
99
Copyright (c) 2004-2005 The Regents of the University of California.
1010
All rights reserved.
11-
Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
11+
Copyright (c) 2008-2016 Cisco Systems, Inc. All rights reserved.
1212
Copyright (c) 2013 Intel, Inc. All rights reserved.
1313
$COPYRIGHT$
1414

@@ -24,60 +24,34 @@ source code form, most likely through a developer's tree (i.e., a
2424
Git clone).
2525

2626

27-
Debugging vs. Optimized Builds
28-
==============================
29-
30-
If you are building Open MPI from a Git clone, the default build
31-
includes a lot of debugging features. This happens automatically when
32-
when configure detects the hidden ".git" Git meta directory (that is
33-
present in all Git clones) in your source tree, and therefore
34-
activates a number of developer-only debugging features in the Open
35-
MPI code base.
36-
37-
By definition, debugging builds will perform [much] slower than
38-
optimized builds of Open MPI. You should *NOT* conduct timing tests
39-
or try to run production performance numbers with debugging builds.
40-
41-
If you wish to build an optimized version of Open MPI from a
42-
developer's checkout, you have three main options:
43-
44-
1. Use the "--with-platform=optimized" switch to configure. This is
45-
the preferred (and probably easiest) method. For example:
46-
47-
shell$ git clone [email protected]:open-mpi/ompi.git
48-
shell$ cd ompi
49-
shell$ ./autogen.pl
50-
shell$ mkdir build
51-
shell$ cd build
52-
shell$ ../configure --with-platform=optimized ...
53-
[...lots of output...]
54-
shell$ make all install
55-
56-
2. Use a VPATH build. Simply build Open MPI from a different
57-
directory than the source tree -- one where the .git subdirectory
58-
is not present. For example:
59-
60-
shell$ git clone [email protected]:open-mpi/ompi.git
61-
shell$ cd ompi
62-
shell$ ./autogen.pl
63-
shell$ mkdir build
64-
shell$ cd build
65-
shell$ ../configure ...
66-
[...lots of output...]
67-
shell$ make all install
68-
69-
3. Manually specify configure options to disable all the debugging
70-
options (note that this is exactly what "--with-platform=optimized"
71-
does behind the scenes). You'll need to carefully examine the
72-
output of "./configure --help" to see which options to disable.
73-
They are all listed, but some are less obvious than others (they
74-
are not listed here because it is a changing set of flags; by
75-
Murphy's Law, listing them here will pretty much guarantee that
76-
this file will get out of date):
77-
78-
shell$ ./configure --disable-debug ...
79-
[...lots of output...]
80-
shell$ make all install
27+
Developer Builds: Compiler Pickyness by Default
28+
===============================================
29+
30+
If you are building Open MPI from a Git clone (i.e., there is a ".git"
31+
directory in your build tree), the default build includes extra
32+
compiler pickyness, which will result in more compiler warnings than
33+
in non-developer builds. Getting these extra compiler warnings is
34+
helpful to Open MPI developers in making the code base as clean as
35+
possible.
36+
37+
Developers can disable this picky-by-default behavior by using the
38+
--disable-picky configure option. Also note that extra-picky compiles
39+
do *not* happen automatically when you do a VPATH build (e.g., if
40+
".git" is in your source tree, but not in your build tree).
41+
42+
Prior versions of Open MPI would automatically activate a lot of
43+
(performance-reducing) debugging code by default if ".git" was found
44+
in your build tree. This is no longer true. You can manually enable
45+
these (performance-reducing) debugging features in the Open MPI code
46+
base with these configure options:
47+
48+
--enable-debug
49+
--enable-mem-debug
50+
--enable-mem-profile
51+
52+
NOTE: These options are really only relevant to those who are
53+
developing Open MPI itself. They are not generally helpful for
54+
debugging general MPI applications.
8155

8256

8357
Use of GNU Autoconf, Automake, and Libtool (and m4)

0 commit comments

Comments
 (0)