PaPP Project

Portable and Predictable Performance on Heterogeneous Embedded Manycores


Developing Portable Software with Predictable Performance for Parallel Embedded Systems

To remain competitive in the fast changing global market for embedded systems, companies need ever shorter time to market and lower development costs for their increasingly complex products. A critical factor for achieving this is increased developer productivity. However, developers of parallel embedded systems face numerous challenges as target systems get increasingly complex. Newly developed systems must o er high performance at low cost and must use available resources eciently in changing operating environments. Ensuring that quality of service goals are met requires performance prediction, since system software often must be developed in parallel with the hardware to shorten time to market. Systems also often contain large amounts of legacy code that needs to be integrated with new code and possibly parallelized.

Companies developing parallel embedded systems thus face the challenge of increasing developer productivity as well as system portability while ensuring sufficient performance. The PaPP platform addresses these challenges. The platform consists of high-level modelling tools for increased developer productivity, performance prediction tools for various hardware platforms, an adaptive runtime system for system portability, and requirements for target hardware.

The PaPP platform enables early detection of insucient performance, thereby avoiding the delays and costs associated with late re-design of signi cant parts of a system. This is achieved by performance prediction throughout the development process. The performance analysis predicts the performance of task-based code using a model of the target hardware. The adaptive runtime system provides predictable performance also when porting systems to newly available hardware. The PaPP toolchain supports model-driven software development, which website increases developer productivity signi cantly. System models generate code, which is the input for the performance prediction and the adaptive runtime system mentioned above. Model-driven software development enables developers to focus on system logic in the model, thereby increasing their productivity.

For legacy code the toolchain contains pro ling tools to identify bottlenecks and to guide the transformation into models, from which application code is generated.

The PaPP toolchain has been evaluated on industrial applications from three problem domains of high importance for the European market: space, mobile applications, and telecommunications. The di erence between the predicted performance and the observed system performance ranges from 3% to 55%. Industrial software developers have successfully ported sequential legacy applications to parallel embedded systems using the toolchain. A survey of the involved developers and experiments document an estimated productivity increase of 38%.