Currently, with the end of Moore’s Law, advances in computational power are due to parallelism. However, most parallel languages build upon existing parallel and sequential languages. To that end, there is a large focus on processors and threads in the existing languages. This makes dealing with data and memory in programs hard, which distances the implementation from its original algorithm and makes parallel programs harder to write and analyze. This should be fixed if parallel programming is going to be our main form of programming as opposed to sequential programming.

We present the data-autonomous paradigm as a paradigm which takes the data focus of data parallelism one step further and abstracts away from a main thread entirely, reducing it to only calling parallel methods executed by data. After all, the main thread is not intrinsically parallel, while data is. This leads to a modular and accessible approach to parallel implementation design with a strong separation of concerns.

As our main result, we present ADL, a parallel programming language focused on the collaboration of its elements, based on the data autonomous paradigm. ADL has some similarities to both message passing and actor languages, as well as to data-parallel languages by virtue of the relation between data-autonomous and data-parallel languages. It consists of two parts, the data elements, which are the actors of the language, and the schedule, which calls functions of data elements.

We discuss the concepts of ADL, like the creation of data elements and their steps, which are strictly asymptotic constant-sized methods which cannot contain loops, as well as the schedule.We illustrate these concepts with examples. Lastly we discuss the future research we plan to do with ADL and the dataautonomous paradigm.

Powerpoint for an Autonomous Data Language (Parallel Programming with an Autonomous Data Language.pptx)4.30MiB

Fri 16 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change