RING: NUMA-Aware Message-Batching Runtime for Data-Intensive Applications

Ke Meng, Guangming Tan · 2017

We present RING, a NUMA-aware Message-batching runtime system for in-memory data-intensive applications. This library allows users to focus on developing algorithms for big data analysis, rather than wrestling with synchronization, data consistency, and memory management. The goal of RING is to improve efficiency mainly for irregular applications, which means less CPU stall on local or remote memory access. RING adopts partitioned global address space (PGAS) model to manage the memory and leverages one-sided RDMA verbs to directly write the message into the NUMA-aware buffer in the remote node. A coroutine yields after posting a long-latency request, allowing considerable overlap of computation and communication. We compare our design with Grappa [21], the state-of-the-art DSM runtime. The experimental results show that RING is 42%~85% faster than Grappa on RandomAccess benchmark, and 1.4×~3.7× faster than Grappa on several graph benchmarks.

Read the paper · More papers on PaperTik