Efficient Distributed Data Structures for Future Many-core Architectures
Panagiota Fatourou, Nikolaos D. Kallimanis, Eleni Kanellou, Odysseas Makridakis, Christi Symeonidou
TL;DR
The paper tackles scalable data-structure design for future many-core architectures lacking global cache coherence. It introduces both directory-based and token-based approaches, with hierarchical extensions, to implement stacks, queues, deques, and lists across islands using mechanisms like elimination, combining, DMA batching, and per-end token control. It provides formal models, linearizability proofs, and extensive experimental evaluation on a $512$-core Formic prototype, demonstrating when hierarchical strategies yield throughput and energy advantages. The work offers practical blueprints for next-generation concurrency utilities and runtime support, highlighting how structure and locality influence scalability in non cache-coherent environments.
Abstract
We study general techniques for implementing distributed data structures on top of future many-core architectures with non cache-coherent or partially cache-coherent memory. With the goal of contributing towards what might become, in the future, the concurrency utilities package in Java collections for such architectures, we end up with a comprehensive collection of data structures by considering different variants of these techniques. To achieve scalability, we study a generic scheme which makes all our implementations hierarchical. We consider a collection of known techniques for improving the scalability of concurrent data structures and we adjust them to work in our setting. We have performed experiments which illustrate that some of these techniques have indeed high impact on achieving scalability. Our experiments also reveal the performance and scalability power of the hierarchical approach. We finally present experiments to study energy consumption aspects of the proposed techniques by using an energy model recently proposed for such architectures.
