Skip to content

Commit 3c18d06

Browse files
committed
README.md: make the heterogeneous support more clear
Remove ambiguous warning language (it's not clear if the "THIS FUNCTIONALITY..." warning applies to the option above or below the warning) and make it clear exactly the hetereogeneous option supports and does not support. Signed-off-by: Jeff Squyres <[email protected]>
1 parent 89c09f1 commit 3c18d06

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

README.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1502,11 +1502,27 @@ Additionally, if a search directory is specified in the form
15021502
Enable the PERUSE MPI data analysis interface.
15031503

15041504
* `--enable-heterogeneous`:
1505-
Enable support for running on heterogeneous clusters (e.g., machines
1506-
with different endian representations). Heterogeneous support is
1507-
disabled by default because it imposes a minor performance penalty.
1508-
1509-
***THIS FUNCTIONALITY IS CURRENTLY BROKEN - DO NOT USE***
1505+
Enable support for running on heterogeneous clusters where data
1506+
types are equivalent sizes across nodes, but may have differing
1507+
endian representations. Heterogeneous support is disabled by
1508+
default because it imposes a minor performance penalty.
1509+
1510+
Note that the MPI standard *does not guarantee that all
1511+
heterogeneous communication will function properly*, **especially
1512+
when the conversion between the different representations leads to
1513+
loss of accuracy or range.** For example, if a message with a
1514+
16-bit integer datatype is sent with value 0x10000 to a receiver
1515+
where the same integer datatype is only 8 bits, the value will be
1516+
truncated at the receiver. Similarly, problems can occur if a
1517+
floating point datatype in one MPI process uses X1 bits for its
1518+
mantissa and Y1 bits for its exponent, but the same floating point
1519+
datatype in another MPI process uses X2 and Y2 bits, respectively
1520+
(where X1 != X2 and/or Y1 != Y2). Type size differences like this
1521+
can lead to unexpected behavior.
1522+
1523+
Open MPI's heterogeneous support correctly handles endian
1524+
differences between datatype representations that are otherwise
1525+
equivalent.
15101526

15111527
* `--with-wrapper-cflags=CFLAGS`
15121528
* `--with-wrapper-cxxflags=CXXFLAGS`

0 commit comments

Comments
 (0)