MULTICORE
Iterative Optimization Tools for Multi-core Embedded Systems
A particular challenge for embedded software is that it must often satisfy limited constraints of processing capacity, memory, and/or power consumption. Modern embedded systems use multi-core processors, because they provide a lot of processing power on a small power budget. Developing and parallelizing software for such systems is challenging, but a much greater problem is maintenance. Porting embedded software to newer versions of hardware is expensive, and can result in dozens of variants of the software, each optimized for slightly different hardware configurations, all of which must be maintained separately. The MULTICORE work programme will develop iterative software tools to support the mapping of application parallelism onto multi-core processors for embedded systems to reduce porting and maintenance costs.
Developing and maintaining software for multi-core embedded systems typically involves building multiple versions of many parts of the software. In many cases, the developer must try several different approaches or parallelization strategies in order to achieve the required performance, memory and power requirements. In particular, performance-critical software which has been tuned to a particular model of multi-core processor often needs substantial reengineering when it is moved to a newer model of embedded processor, which may have more parallel cores, or different performance trade-offs.
The goal of this project is to support the mapping of embedded software onto multi-core embedded architectures, by providing tools that simplify finding the best variant of parallelization strategy for a particular architecture. This will reduce the tuning and porting costs of embedded software, and reduce the number of versions that need to be maintained.
The work programme is in collaboration with Movidius, in Irish company that develops powerful and power-efficient processors for mobile real-time media processing.
Project Leader |




