@article{Hong2019, 
author = {Yang Hong and Yang Zheng and Fan Yang and Bin-Yu Zang and Hai-Bing Guan and Hai-Bo Chen},
title = {Scaling out NUMA-Aware Applications with RDMA-Based Distributed Shared Memory},
year = {2019},
journal = {Journal of Computer Science and Technology},
volume = {34},
number = {1},
pages = {94-112},
keywords = {distributed shared memory (DSM), scalability, multicore evolution, non-uniform memory access (NUMA), remote direct memory access (RDMA)},
url = {https://www.sciopen.com/article/10.1007/s11390-019-1901-4},
doi = {10.1007/s11390-019-1901-4},
abstract = {The multicore evolution has stimulated renewed interests in scaling up applications on shared-memory multiprocessors, significantly improving the scalability of many applications. But the scalability is limited within a single node; therefore programmers still have to redesign applications to scale out over multiple nodes. This paper revisits the design and implementation of distributed shared memory (DSM) as a way to scale out applications optimized for non-uniform memory access (NUMA) architecture over a well-connected cluster. This paper presents MAGI, an efficient DSM system that provides a transparent shared address space with scalable performance on a cluster with fast network interfaces. MAGI is unique in that it presents a NUMA abstraction to fully harness the multicore resources in each node through hierarchical synchronization and memory management. MAGI also exploits the memory access patterns of big-data applications and leverages a set of optimizations for remote direct memory access (RDMA) to reduce the number of page faults and the cost of the coherence protocol. MAGI has been implemented as a user-space library with pthread-compatible interfaces and can run existing multithreaded applications with minimized modifications. We deployed MAGI over an 8-node RDMAenabled cluster. Experimental evaluation shows that MAGI achieves up to 9.25x speedup compared with an unoptimized implementation, leading to a scalable performance for large-scale data-intensive applications.}
}