Skip to content

MPI RMA Design Goals

William Gropp edited this page Dec 3, 2015 · 3 revisions

The existing MPI-2 RMA API appears to not meet the needs of application programmers and library writers and hence is not widely used. RMA as a programming paradigm, however, is still valued and needed. The goal of this subgroup is to fix the existing MPI-2 RMA API or develop a new API that library writers (e.g., PGAS and Global Arrays) and application programmers will use.

The following is a draft of design goals for the MPI-3 One-sided (RMA) effort.

  1. In order to support RMA to arbitrary locations, no constraints on memory, such as symmetric allocation or collective window creation, can be required
  2. To allow for overlap of communication with other operations, nonblocking RMA operations are required
  3. RMA operations that are imprecise (such as access to overlapping storage) must be permitted, even if the behavior is undefined
  4. To permit low-latency operations, RMA operations should be possible in a single routine call (these would be (or include) blocking RMA calls)
  5. The RMA model must support non-cache-coherent and heterogeneous environments
  6. Transfers of noncontiguous data, including strided (vector) and scatter/gather must be supported
  7. Scalable completion (a single call for a group of processes) is required
  8. The required level of consistency, atomicity, and completeness should be flexible

In all cases, a requirement does not imply that other possibilities are prohibited. For example, the requirement that symmetric allocation may not be required does not imply that symmetric allocation is prohibited.

A separate wiki page has been created to capture the goals and constraints for an RMA design. Note that some constraints may be mutually exclusive and will either require choosing a subset of operations or providing a way to select one set over another (possibly with a performance loss for some systems). That page is: FIND THIS PAGE

More details on the goals and constraints for an MPI RMA model

Background on Design Goals

See the presentation. The goals come from feedback from those trying to use MPI RMA (such as the the paper describing problems using MPI RMA to implement PGAS languages) and other users. The goals do not include providing an interface for all possible RMA operations; rather, provide support for a significant number of applications. Attachments