Distributed Ranges: A Model for Distributed Data Structures, Algorithms, and Views
ACM International Conference on Supercomputing(2024)
摘要
Data structures and algorithms are essential building blocks for programs,
and distributed data structures, which automatically partition data
across multiple memory locales, are essential to writing high-level parallel
programs. While many projects have designed and implemented C++ distributed
data structures and algorithms, there has not been widespread adoption of an
interoperable model allowing algorithms and data structures from different
libraries to work together. This paper introduces distributed ranges, which is
a model for building generic data structures, views, and algorithms. A
distributed range extends a C++ range, which is an iterable sequence of values,
with a concept of segmentation, thus exposing how the distributed range is
partitioned over multiple memory locales. Distributed data structures provide
this distributed range interface, which allows them to be used with a
collection of generic algorithms implemented using the distributed range
interface. The modular nature of the model allows for the straightforward
implementation of distributed views, which are lightweight objects
that provide a lazily evaluated view of another range. Views can be composed
together recursively and combined with algorithms to implement computational
kernels using efficient, flexible, and high-level standard C++ primitives. We
evaluate the distributed ranges model by implementing a set of standard
concepts and views as well as two execution runtimes, a multi-node, MPI-based
runtime and a single-process, multi-GPU runtime. We demonstrate that high-level
algorithms implemented using generic, high-level distributed ranges can achieve
performance competitive with highly-tuned, expert-written code.
更多查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要