  Remote memory access (RMA) is an emerging high-performance programming model
that uses RDMA hardware directly. Yet, accessing remote memories cannot invoke
activities at the target which complicates implementation and limits
performance of data-centric algorithms. We propose Active Access (AA), a
mechanism that integrates well-known active messaging (AM) semantics with RMA
to enable high-performance distributed data-centric computations. AA supports a
new programming model where the user specifies handlers that are triggered when
incoming puts and gets reference designated addresses. AA is based on a set of
extensions to the Input/Output Memory Management Unit (IOMMU), a unit that
provides high-performance hardware support for remapping I/O accesses to
memory. We illustrate that AA outperforms existing AM and RMA designs,
accelerates various codes such as distributed hashtables or logging schemes,
and enables new protocols such as incremental checkpointing for RMA.We also
discuss how extended IOMMUs can support a virtualized global address space in a
distributed system that offers features known from on-node memory
virtualization. We expect that AA can enhance the design of HPC operating and
runtime systems in large computing centers.
