| 1 | |
|---|
| 2 | ---------------------------------------------------------------------- |
|---|
| 3 | KNOWN ISSUES |
|---|
| 4 | ---------------------------------------------------------------------- |
|---|
| 5 | |
|---|
| 6 | ### Lacking channel-specific features |
|---|
| 7 | |
|---|
| 8 | * ch3 does not presently support communication across heterogeneous |
|---|
| 9 | platforms (e.g., a big-endian machine communicating with a |
|---|
| 10 | little-endian machine). |
|---|
| 11 | |
|---|
| 12 | * ch3:ssm and ch3:shm do not support thread safety. |
|---|
| 13 | |
|---|
| 14 | * ch3:shm does not support dynamic processes (e.g., MPI_Comm_spawn). |
|---|
| 15 | |
|---|
| 16 | * Support for "external32" data representation is incomplete. This |
|---|
| 17 | affects the MPI_Pack_external and MPI_Unpack_external routines, as |
|---|
| 18 | well the external data representation capabilities of ROMIO. |
|---|
| 19 | |
|---|
| 20 | * ch3:dllchan is rated "experimental". There are known problems when |
|---|
| 21 | configured with --enable-g and --enable-g=log. |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | ### Build Platforms |
|---|
| 25 | |
|---|
| 26 | * ch3:nemesis does not work on Solaris. You can use ch3:sock on this |
|---|
| 27 | platform. |
|---|
| 28 | |
|---|
| 29 | * ch3:ssm uses special interprocess locks (often assembly) that many |
|---|
| 30 | not work with some compilers or machine architectures. It is known |
|---|
| 31 | to work on Linux with GNU, Intel and Pathscale compilers and on |
|---|
| 32 | Windows with the Visual Studio compilers, on Intel and AMD |
|---|
| 33 | architectures. |
|---|
| 34 | |
|---|
| 35 | * The sctp channel is fully supported for FreeBSD and Mac OS X. As of |
|---|
| 36 | the time of this release, bugs in the stack currently existed in |
|---|
| 37 | the Linux kernel, and will hopefully soon be resolved. It is known |
|---|
| 38 | to not work under Solaris and Windows. For Solaris, the SCTP API |
|---|
| 39 | available in the kernel of standard Solaris 10 is a subset of the |
|---|
| 40 | standard API used by the sctp channel. Cooperation with the Sun |
|---|
| 41 | SCTP developers to support ch3:sctp under Solaris for future |
|---|
| 42 | releases is currently ongoing. For Windows, no known kernel-based |
|---|
| 43 | SCTP stack for Windows currently exists. |
|---|
| 44 | |
|---|
| 45 | |
|---|
| 46 | ### Other configure options |
|---|
| 47 | |
|---|
| 48 | * --enable-sharedlibs=gcc does not work on Solaris because of |
|---|
| 49 | difference between the GNU ld program and the Solaris ld program. |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | ### Process Managers |
|---|
| 53 | |
|---|
| 54 | * The MPD process manager can only handle relatively small amounts of |
|---|
| 55 | data on stdin and may also have problems if there is data on stdin |
|---|
| 56 | that is not consumed by the program. |
|---|
| 57 | |
|---|
| 58 | * The Hydra process manager does not support dynamic processes at |
|---|
| 59 | this time. |
|---|
| 60 | |
|---|
| 61 | * The SMPD process manager does not work reliably with threaded MPI |
|---|
| 62 | processes. MPI_Comm_spawn() does not currently work for >= 256 |
|---|
| 63 | arguments with smpd. |
|---|
| 64 | |
|---|
| 65 | |
|---|
| 66 | ### Performance issues |
|---|
| 67 | |
|---|
| 68 | * SMP-aware collectives do not perform as well, in select cases, as |
|---|
| 69 | non-SMP-aware collectives, e.g. MPI_Reduce with message sizes |
|---|
| 70 | larger than 64KiB. These can be disabled by the configure option |
|---|
| 71 | "--disable-smpcoll". |
|---|
| 72 | |
|---|
| 73 | * MPI_Irecv operations that are not explicitly completed before |
|---|
| 74 | MPI_Finalize is called may fail to complete before MPI_Finalize |
|---|
| 75 | returns, and thus never complete. Furthermore, any matching send |
|---|
| 76 | operations may erroneously fail. By explicitly completed, we mean |
|---|
| 77 | that the request associated with the operation is completed by one |
|---|
| 78 | of the MPI_Test or MPI_Wait routines. |
|---|
| 79 | |
|---|
| 80 | * For passive target RMA, there is no asynchronous agent at the |
|---|
| 81 | target that will cause progress to occur. Progress occurs only when |
|---|
| 82 | the user calls an MPI function at the target (which could well be |
|---|
| 83 | MPI_Win_free). |
|---|
| 84 | |
|---|
| 85 | |
|---|
| 86 | ### C++ Binding: |
|---|
| 87 | |
|---|
| 88 | * The MPI datatypes corresponding to Fortran datatypes are not |
|---|
| 89 | available (e.g., no MPI::DOUBLE_PRECISION). |
|---|
| 90 | |
|---|
| 91 | * The C++ binding does not implement a separate profiling interface, |
|---|
| 92 | as allowed by the MPI-2 Standard (Section 10.1.10 Profiling). |
|---|
| 93 | |
|---|
| 94 | * MPI::ERRORS_RETURN may still throw exceptions in the event of an |
|---|
| 95 | error rather than silently returning. |
|---|