🤖 AI Summary
Existing parallel programming languages primarily focus on thread or processor scheduling, making data and memory operations cumbersome to express and causing a severe disconnect between algorithmic intent and implementation. Method: This paper introduces the “data-autonomous parallelism” paradigm, wherein data elements serve as first-class entities endowed with autonomy and collaborative capabilities, enabling parallel structure to directly mirror algorithmic logic. Based on this paradigm, we design AuDaLa—the first formally defined data-autonomous language—featuring a rigorous type system and operational semantics that support formal verification of parallel programs. Contribution/Results: Experiments demonstrate that AuDaLa significantly improves programming naturalness and, for the first time under this paradigm, enables provable correctness verification of parallel programs. This work establishes a novel foundation for developing highly trustworthy parallel software.
📝 Abstract
Nowadays, the main advances in computational power are due to parallelism. However, most parallel languages have been designed with a focus on processors and threads. This makes dealing with data and memory in programs hard, which distances the implementation from its original algorithm. We propose a new paradigm for parallel programming, the data-autonomous paradigm, where computation is performed by autonomous data elements. Programs in this paradigm are focused on making the data collaborate in a highly parallel fashion. We furthermore present AuDaLa, the first data autonomous programming language, and provide a full formalisation that includes a type system and operational semantics. Programming in AuDaLa is very natural, as illustrated by examples, albeit in a style very different from sequential and contemporary parallel programming. Additionally, it lends itself for the formal verification of parallel programs, which we demonstrate.