The need to exploit multi-core systems for parallel processing has revived the concept of dataflow. In particular, the Dataflow Multithreading architectures have proven to be good candidates for these systems. In this work we propose an abstraction layer that enables compiling and running a program written for an abstract Dataflow Multithreading architecture on different implementations. More specifically, we present a set of compiler directives that provide the programmer with the means to express most types of dependencies between code segments. In addition, we present the corresponding toolchain that transforms this code into a form that can be compiled for different implementations of the model. As a case study for this work, we present the usage of the toolchain for the TFlux and DTA architectures.
['Kyriakos Stavrou', 'Demos Pavlou', 'Marios Nikolaides', 'Panayiotis Petrides', 'Paraskevas Evripidou', 'Pedro Trancoso', 'Zdravko Popovic', 'Roberto Giorgi']
Programming Abstractions and Toolchain for Dataflow Multithreading Architectures