Parallel programming is paramount for fully harvesting the available computational power of modern multicore architectures. Unfortunately, writing parallel code is not trivial bringing a new challenge to create models and alternatives that ease parallelism exploitation. Heterogeneous Computer systems equipped with various types of accelerator devices (e.g., GPGPUs and FPGAs), present an even greater challenge to application developers as each device uses different programming languages and tools.
In the Dataflow model, execution is guided by data dependencies, instead of following program order. Instructions (or tasks) are allowed to execute as soon as their input operands are ready. Independent tasks can be naturally identified and executed in parallel (if there are enough resources). This model is a viable alternative to exploring parallelism in the form of execution environments, libraries, accelerators, and processors.
We have developed two runtime environments to allow the implementation and evaluation of ideas that promote advances in the state-of-the-art of this field: TALM and Sucuri. TALM is a complete runtime environment for Dataflow, composed by a virtual machine, compiler, assembler and language, conceived to allow investigations on the model in a lower level. On the other hand, Sucuri is a minimalist Dataflow execution library for Python, devised to make the model more popular, promoting advances in application and parallel programming techniques.
In this talk we will explain how the Dataflow execution model works and discuss the main research initiatives in this area. Then, both TALM and Sucuri will be described. Finally, future research directions, e.g., accelerator support, scheduling, runtime environments and tools, compiling and languages, resiliency and applications, will be discussed.
Leandro Marzulo received his M.Sc. (2007) and D.Sc. (2011) in Systems Engineering and Computer Science from Universidade Federal do Rio de Janeiro, Brazil. He is currently an Associate Professor at Universidade do Estado do Rio de Janeiro. His research interests are: Computer Architecture, Dataflow, Parallel Programming, Compilers, Distributed Algorithms and Edge/Fog/In-situ computing. In addition, he is interested in applying high performance computing to DNA sequencing and alignment, stock market risk analysis and image processing. He has organized all 6 editions of MPP (http://mpp2017.ime.uerj.br) and has served as a PC member in several other events.