MedusaVM: Decentralizing Virtual Memory System for Multithreaded Applications on Many-core.

Miao Cai,Shenming Liu,Weiyong Yang,Hao Huang
DOI: https://doi.org/10.1007/978-3-030-05051-1_19
2018-01-01
Abstract:Virtual memory system multiplexes the single physical memory for multiple running processes with two centralized resources, i.e., virtual memory space and page table hierarchy. However, for multi-threaded applications running a single address space, current centralized VM system design encounters severe scalability bottlenecks and significantly impedes the application speedup increment on many-core systems. This paper proposes a novel VM system called MEDUSAVM to scale VM system to many cores. To this end, MEDUSAVM partitions the global virtual memory space and page table tree in a memory-efficient way, eliminating performance interference and lock contention between cores. Moreover, MEDUSAVM also provides a traditional shared memory interface for multithreaded applications. Our prototype system is implemented based on Linux kernel 4.4.0 and glibc 2.23. Experimental results evaluated on a 32-core machine demonstrate that MEDUSAVM scales much better than Linux kernel and uses 22x less memory compared with the state-of-art approach. For microbenchmarks experiments, MEDUSAVM achieves nearly linear performance speedup. In multithreaded applications Metis and Psearchy, MEDUSAVM also significantly outperforms Linux kernel by up to a factor of 2.5x.
What problem does this paper attempt to address?