hwloc: null check for cpuset
[mpich-dev.git] / RELEASE_NOTES
1 ----------------------------------------------------------------------
2                         KNOWN ISSUES
3 ----------------------------------------------------------------------
4
5 ### CH4 preview
6
7  * Build Issues
8    - CH4 will not build with Solaris compilers.
9
10  * Test failures
11    - CH4 will not currently pass 100% of the testsuite.
12    - Test failures differ based on experimental setup and network
13      support built in.
14
15 ### OS/X
16
17  * C++ bindings - Exception handling in C++ bindings is broken because
18    of a bug in libc++ (see
19    https://github.com/android-ndk/ndk/issues/289).  You can workaround
20    this issue by explicitly linking your application to libstdc++
21    instead (e.g., mpicxx -o foo foo.cxx -lstdc++).
22
23  * GCC builds - When using Homebrew or Macports gcc (not the default
24    gcc, which is just a symlink to clang), a bug in gcc
25    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40838) causes stack
26    alignment issues in some cases causing segmentation faults.  You
27    can workaround this issue by building mpich with clang, or by
28    passing a lower optimization level than the default (-O2).
29    Currently, this bug only seems to show up when the
30    --disable-error-checking flag is passed to configure.
31
32 ### Solaris compilers
33
34  * Compilation on solaris will freeze when MPICH is configured with 
35    "--enable-strict". This is due to a solaris compiler bug related
36    to a specific order of assignments to long long and short variables.
37    See the following ticket for more information:
38
39      https://trac.mpich.org/projects/mpich/ticket/2105
40
41 ### PathScale compilers
42  * Due to bugs in the PathScale compiler suite, some configurations of MPICH
43    do not build correctly.
44     - v5.0.1: When the --disable-shared configure option is passed to MPICH,
45       applications will give a segfault.
46
47     - v5.0.5: Unless you pass the --enable-fast=O0 configure flag to MPICH,
48       applications will hang.
49
50    See the following ticket for more information:
51
52     https://trac.mpich.org/projects/mpich/ticket/2104
53
54 ### Fine-grained thread safety
55
56  * ch3:sock does not (and will not) support fine-grained threading.
57
58  * MPI-IO APIs are not currently thread-safe when using fine-grained
59    threading (--enable-thread-cs=per-object).
60
61  * ch3:nemesis:tcp fine-grained threading is still experimental and may
62    have correctness or performance issues.  Known correctness issues
63    include dynamic process support and generalized request support.
64
65
66 ### Lacking channel-specific features
67
68  * ch3 does not presently support communication across heterogeneous
69    platforms (e.g., a big-endian machine communicating with a
70    little-endian machine).
71
72  * ch3:nemesis:mx does not support dynamic processes at this time.
73
74  * Support for "external32" data representation is incomplete. This
75    affects the MPI_Pack_external and MPI_Unpack_external routines, as
76    well the external data representation capabilities of ROMIO.  In
77    particular: noncontiguous user buffers could consume egregious
78    amounts of memory in the MPI library and any types which vary in
79    width between the native representation and the external32
80    representation will likely cause corruption.  The following ticket
81    contains some additional information:
82
83      http://trac.mpich.org/projects/mpich/ticket/1754
84
85  * ch3 has known problems in some cases when threading and dynamic
86    processes are used together on communicators of size greater than
87    one.
88
89
90 ### Process Managers
91
92  * Hydra has a bug related to stdin handling:
93
94      https://trac.mpich.org/projects/mpich/ticket/1782
95
96
97 ### Performance issues
98
99  * SMP-aware collectives do not perform as well, in select cases, as
100    non-SMP-aware collectives, e.g. MPI_Reduce with message sizes
101    larger than 64KiB. These can be disabled by setting the environment
102    variable MPIR_CVAR_ENABLE_SMP_COLLECTIVES to 0.
103
104  * MPI_Irecv operations that are not explicitly completed before
105    MPI_Finalize is called may fail to complete before MPI_Finalize
106    returns, and thus never complete. Furthermore, any matching send
107    operations may erroneously fail. By explicitly completed, we mean
108    that the request associated with the operation is completed by one
109    of the MPI_Test or MPI_Wait routines.