@@ -1502,11 +1502,27 @@ Additionally, if a search directory is specified in the form
1502
1502
Enable the PERUSE MPI data analysis interface.
1503
1503
1504
1504
* ` --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
+ compatible.
1510
1526
1511
1527
* ` --with-wrapper-cflags=CFLAGS `
1512
1528
* ` --with-wrapper-cxxflags=CXXFLAGS `
0 commit comments