MPI Implementation Status |
(This document roughly follows the format of the memo Status of the MPICH implementation of MPI-1 and MPI-2. It is organized by sections of the MPI-2 Standard).
Section | Support | |
---|---|---|
MPI-1.2 | ||
All | Yes | |
MPI-2: Miscellany | ||
4.1 | Portable MPI Process Startup (mpiexec) | No |
4.2 | Passing NULL to MPI_Init | Yes |
4.4 | MPI_TYPE_CREATE_INDEXED_BLOCK | Yes |
4.5 | MPI_STATUS_IGNORE MPI_STATUSES_IGNORE | Yes |
4.6 | Error Class for Invalid Keyval | No. GridMPI does not distinguish target objects of keyvals. |
4.7 | Committing a Committed Datatype | Yes. GridMPI does nothing by commit. |
4.8 | Allowing User Functions at Process Termination | No |
4.9 | Determining Whether MPI Has Finished | Yes |
4.10 | The Info Object | Yes |
4.11 | Memory Allocation | Yes. GridMPI implements memory allocators by malloc/free. |
4.12 | Language Interoperability | No. Fortran KIND is not yet implemented. |
4.13 | Error Handlers (on communicators, windows, and datatypes) | Yes. GridMPI does not distinguish target objects of error handlers, and no errors are signaled when an error handler is set to an inappropriate object. |
4.14 | New Datatype Manipulation Functions | Yes |
4.15 | New Predefined Datatypes | Yes |
4.16 | Canonical MPI_PACK and MPI_UNPACK | Yes |
4.17 | Functions and Macros | Yes. GridMPI implements all interfaces as functions. |
4.18 | Profiling Interface | Yes |
MPI-2: Process Creation and Management | ||
5.3 | Process Manager Interface | Yes. Lightly tested. (*Note1) |
5.4 | Establishing Communication | Yes. Lightly tested. (*Note1) |
5.5 | Other Functionality | Yes. Lightly tested. (*Note1) |
MPI-2: One-Sided Communications | ||
6.2 | Initialization | Yes. Lightly tested. (*Note3) |
6.3 | Communication Calls | Yes. Lightly tested. (*Note3) |
6.4 | Synchronization Calls | Yes. Lightly tested. (*Note3) |
6.6 | Error Handling | Yes. Lightly tested. (*Note3) |
MPI-2: Extended Collective Operations | ||
7.2 | Intercommunucator Constructors | Yes |
7.3 | Extended Collective Operations | Yes |
MPI-2: External Interfaces | ||
8.2 | Generalized Requests | Yes |
8.3 | Associating Information with Status | Yes |
8.4 | Naming Objects | Yes |
8.5 | Error Classes, Codes, and Handlers | Yes |
8.6 | Decoding a Datatype | Yes |
8.7 | MPI and Threads | Yes. Lightly tested. (*Note2) |
8.8 | New Attribute Caching Functions | Yes |
8.9 | Duplicating a Datatype | Yes |
MPI-2: MPI-I/O | ||
9.2 | File Manipulation | Yes. Lightly tested. (*Note3, *Note4) |
9.3 | File Views | Yes. Lightly tested. (*Note3, *Note4) |
9.4 | Data Access | Yes. Lightly tested. (*Note3, *Note4) |
9.5 | File Interoperability | Yes. Lightly tested. (*Note3, *Note4) |
9.6 | Consistency and Semantics | Yes. Lightly tested. (*Note3, *Note4) |
9.7 | I/O Error Handling | Yes. Lightly tested. (*Note3, *Note4) |
9.8 | I/O Error Classes | Yes. Lightly tested. (*Note3, *Note4) |
MPI-2: Language Bindings | ||
10.1 | C++ | Yes |
10.2 | Fortran Support | No (includes MPI module) |
NOTES: