|Abstract:||Software for embedded systems is more complex than in the past, as more functions are implemented on the same device. This talk will provide an overview of the characteristics of embedded systems and discuss features that could be added to OpenMP to enable it to better serve as a programming model for these systems. Embedded systems typically are constrained by among other things real-time deadlines, power-limitations and limited memory resources. Today OpenMP is not able to express these types of constraints.
Embedded systems applications can be broadly classified as event-driven or compute and data intensive. OpenMP is well suited to expressing the parallel execution that is demanded by compute and data intensive applications. However, extensions are needed for event-driven applications, such as automotive embedded systems, where the behavior is characterized by a defined sequence of responses to a given incoming event from the environment. While the actions performed may not be compute or data intensive, they tend to have strict real-time constraints.
The use of multicore technology has increased the design space and performance of Multiprocessor Systems-on-Chip (MPSoCs) that are targeted at embedded applications. A natural extension is to adapt the device construct added in OpenMP 4.0 to support the mapping of different software tasks, or components, to various processor cores.