40 likes | 159 Views
This proposal outlines enhancements to MPI-3 for supporting multiple MPI processes within a single address space, leveraging lighter-weight entities like threads. Key features include clarification on new options to mpiexec and SPAWN functions to facilitate starting MPI computations with multiple processes. Additionally, it introduces the capability for a thread to change its MPI rank within the same address space, enhancing interoperability with programming models like OpenMP or UPC. The impact on applications is minimal for those not utilizing this feature, while portability is maintained for libraries.
E N D
MPI-3 Endpoints Proposal Hybrid Working Group
Multiple MPI Processes per Address Space • MPI-2.2 already allows MPI processes to be implemented as more light-weight entities than OS processes • Thus, we can have multiple MPI processes within an address space • Could be pthreads, user-level threads, whatever • Two tickets: • Ticket #310: clarification and query functionality • Ticket #311: additional capabilities for interoperability with other programming models
Ticket #310 • Ticket #310 adds two parts • New options to mpiexec and SPAWN to start an MPI computation with multiple MPI processes within same address space • Allows applications to find which MPI processes are within the same address space • Impact on applications: • None, if do not plan to use multiple MPI processes within same address space • Applications/libraries can be written to be portable to such an environment • Impact on implementations: • None, if do not support new capability • Additional indirection in MPI calls, otherwise
Ticket #311 • Allow a thread to change its MPI rank to another rank within same address space • Impact on applications • Facilitate use of multiple MPI ranks within one OpenMP or UPC programs • Impact on implementations • None, if do not support multiple MPI processes within one address space • Very limited, once such a support is implemented