The MPI standard has long included one-sided communication abstractions through the MPI Remote Memory Access (RMA) interface. Unfortunately, the MPI RMA chapter in the 4.0 version of the MPI standard still contains both well-known and lesser known short-comings for both implementations and users, which lead to potentially non-optimal usage patterns. In this paper, we identify a set of issues and propose ways for applications to better express anticipated usage of RMA routines, allowing the MPI implementation to better adapt to the application's needs. In order to increase the flexibility of the RMA interface, we add the capability to duplicate windows, allowing access to the same resources encapsulated by a window using different configurations. In the same vein, we introduce the concept of MPI memory handles, meant to provide life-time guarantees on memory attached to dynamic windows, removing the overhead currently present in using dynamically exposed memory. We will show that our extensions provide improved accumulate latencies, reduced overheads for multi-threaded flushes, and allow for zero overhead dynamic memory window usage.
翻译:长期以来,MPI标准包括了通过MPI远程内存存存存取接口(RMA)的片面通信抽取。 不幸的是,MPI标准4.0版的MPI RMA章节仍然包含对实施者和用户的众所周知和不太为人所知的缺点,这可能导致潜在非最佳使用模式。在本文件中,我们确定了一系列问题并提出应用方法,以更好地表达RMA常规的预期使用,使MPI实施更好地适应应用程序的需要。为了提高RMA界面的灵活性,我们增加了重复窗口的能力,允许使用由不同配置的窗口所包装的相同资源。同样,我们引入了MPI内存处理器的概念,目的是为动态窗口的记忆提供寿命保障,消除目前使用动态外暴露记忆的间接费用。我们将表明,我们的扩展提供了更好的累积延迟,减少多读式电流的间接费用,并允许零顶端动态内存窗口的使用。