Parallelizing and Optimizing Compilation for Synchronous Languages: New Directions for High-Performance Embedded Systems
Dr. Albert Cohen
Recorded 11 September 2013 in Lausanne, Vaud, Switzerland
Synchronous data-flow programming appeared in the 80s, with Lustre and Signal, applied to the design, modeling, and programming of safety-critical embedded systems. Its scientific and industrial success derives from the ability to master the high levels of concurrency in reactive systems, while preserving a functionally deterministic semantics, with liveness, bounded memory, and bounded execution time guarantees. Recent work on Lucid Synchrone and Scade version 6 led to important progress in expressiveness, from automatic type inference to the modular construction of complex systems combining state machines and data-flow equations. Powerful compilation techniques have also been designed that are capable of generating sequential code competitive with low-level C programming.
As multicore embedded processors and MPSoC become unavoidable, even in safety-critical environments, and as control applications become increasingly computational, new challenges emerge in the parallelization and optimization of synchronous programs. In this talk, we will survey recent and ongoing work on generating parallel code and highly efficient nested loops with in-place, array-based computations from data-flow synchronous programs. This survey will take us through programming language design, task models, data structure and stream abstraction, compilation algorithms, and runtime systems, with a focus on real-time embedded systems.
Watched 585 times.Watch