Making parallel programming easier to understand and verify with a data-centered approach
PhD researcher Tom Franken developed new methods to make parallel programming easier to design, understand, and verify by introducing a new way of structuring how parallel programs are written and executed.
Modern software increasingly uses parallel computing, where multiple processors work on different parts of a program at the same time. This is important for performance in applications such as large-scale data processing, graph analysis, and scientific computing. But even with modern hardware, writing correct parallel programs remains difficult.
A different way of structuring parallel programs
Instead of organizing programs around processes that communicate and share data, proposes a model in which data itself plays a more active role in computation.
In this approach, data elements are not just stored values. They can also carry out small pieces of computation themselves during program execution. These data elements interact locally with each other, which reduces the need to explicitly coordinate many separate processes.
This idea forms the basis of what is called the data-autonomous paradigm. It offers a different way of thinking about parallel programs: not as many processes working together, but as many interacting pieces of data.
Based on this idea, Franken developed AuDaLa (Autonomous Data Language), a programming language designed to study and formalize this approach.
To show how programs work in this setting, the thesis includes standard examples from computer science such as sorting, prefix sums, and graph reachability. These are widely used building blocks in many real-world applications, especially in data analysis and graph processing. The language is also expressive enough to represent general computation, demonstrated by implementing a Turing machine within the system.
Bringing the approach to modern hardware
A key aspect of Franken’s research is that AuDaLa is designed to remain independent of specific hardware, while still being usable on real machines.
His thesis explains how programs in AuDaLa can be executed on shared-memory systems and adapted for both CPUs and GPUs, which are widely used for high-performance computing. This makes Franken’s approach relevant for practical computing environments where both performance and portability are important.
To improve efficiency, the Franken also introduced an alternative “weak-memory” version of the system. This allows more flexibility in the order in which operations are executed internally, which can improve performance on real hardware. Importantly, this optimized version behaves the same as the original model for well-structured programs, meaning performance improvements do not change what the program actually does.
Ensuring correctness in parallel programs
Beyond designing a programming language, Franken’s research also addresses a key practical problem: how to ensure that parallel programs are correct.
Because many things happen at the same time, parallel programs can behave differently depending on timing. This means that testing alone is often not enough to guarantee correctness.
To address this, he developed AuDaLogic, a formal system for proving that AuDaLa programs behave correctly. The system is based on separation logic, a mathematical method for reasoning about programs that share and modify data. It allows developers to build step-by-step proofs of correctness.
Franken’s work demonstrates this method using example programs, including sorting algorithms, showing how correctness can be proven in practice.
Towards more reliable parallel software
The research conducted by Franken contributes to efforts to make parallel programming more reliable and easier to use. By shifting the focus from coordinating many processes to the behavior of data itself, it offers a different way to design parallel programs.
Combined with formal verification methods and execution models that work efficiently on modern CPUs and GPUs, Franken’s approach provides a foundation for parallel software that is both more structured and easier to trust.
PhD researcher Tom Franken. Photo: Vincent van den Hoogen
-
Supervisors
Jan Friso Groote, Thomas Neele
Written by
More on AI and Data Science
Latest news