PULSE: Accelerating Distributed Pointer-Traversals on Disaggregated Memory (Extended Version)
Yupeng Tang, Seung-seob Lee, Abhishek Bhattacharjee, Anurag Khandelwal
TL;DR
The paper tackles the bottleneck of pointer traversals in rack-scale disaggregated memory by introducing pulse, a near-memory, distributed traversal framework that uses an iterator-based programming model, a disaggregated accelerator with separate logic and memory pipelines, and in-network switch routing for cross-node traversals. By translating iterator code to a compact pulse ISA and offloading memory-centric work only when beneficial, pulse achieves high utilization and energy efficiency, achieving $t_c \leq \eta t_d$ with $\eta$ dynamically set by pipeline configuration. Real-system experiments show substantial gains: 9–34× lower latency, 28–171× higher throughput, and 4.5–5× lower energy per operation compared to RPC-based approaches, with potential further improvements if implemented in ASICs. The work demonstrates a scalable path to expressive, efficient distributed traversal across disaggregated memory, enabling broader adoption of memory-disaggregated architectures for pointer-heavy workloads.
Abstract
Caches at CPU nodes in disaggregated memory architectures amortize the high data access latency over the network. However, such caches are fundamentally unable to improve performance for workloads requiring pointer traversals across linked data structures. We argue for accelerating these pointer traversals closer to disaggregated memory in a manner that preserves expressiveness for supporting various linked structures, ensures energy efficiency and performance, and supports distributed execution. We design PULSE, a distributed pointer-traversal framework for rack-scale disaggregated memory to meet all the above requirements. Our evaluation of PULSE shows that it enables low-latency, high-throughput, and energy-efficient execution for a wide range of pointer traversal workloads on disaggregated memory that fare poorly with caching alone.
