Section: New Results
Joint architecture/programming approaches
Here are the most recent key scientific achievements.
A joint programming/architecture approach for streaming applications which is successfully used at NXP (formerly Philips Semiconductors). An extension of the synchronous Kahn process networks using a relaxed notion of synchrony, called N -synchrony, applied to the efficient and scalable parallelization of media streaming applications.
CAPSULE: division-based parallelization
Participants : Olivier Certner, Zheng Li, Olivier Temam.
We have decided to ride a popular trend in software engineering, software components , which blends well with multi-cores: it proposes to decompose a large program into smaller fully independent parts, just like multi-cores consist in decomposing large monolithic architectures into a set of smaller cores. In itself, componentization does not yield much parallelism, our contribution is to augment components with the ability to divide , yielding as much parallelism as resources allow. The programmer is only exposed to this very simple notion of parallelization, and the role of the architecture and/or the run-time system is to manage parallel tasks. We have shown that this approach performs well on programs with irregular control flow behavior and complex data structures, which are typically difficult to efficiently parallelize. We have first demonstrated the approach on multi-threaded single-cores  , then on shared-memory multi-cores  , and have recently implemented the hardware support for distributed-memory multi-cores.