SP@CE - An SP-based Programming Model for Consumer Electronics Streaming Applications
Ana Lucia Varbanescu, Maik Nijhuis, Arturo Gonzalez Escribano, Henk Sips, Herbert Bos and Henri Bal
The 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2006)
New Orleans, Louisiana, November 2-4, 2006
Abstract
This paper presents the motivation, the design, and the results of SP@CE, a new programming model for streaming applications targeted to Consumer Electronics (CE) devices. SP@CE is an extension of the Series-Parallel Contention (SPC) programming model, and it is designed to balance the specific requirements of the streaming applications and the architectural constraints of consumer electronic (CE) devices, all listed and analyzed as part of the paper. Furthermore, SP@CE offers a complete flow, from design to implementation, of event-aware dynamically reconfigurable streaming applications, while allowing programmers to exploit both data and task parallelism in a straightforward manner. To prove the value of SP@CE, we have designed and prototyped a three-layer framework. (1) The front-end allows the programmer to design the parallel application in an SP-compliant form and it generates the extended SPC application code in SPC-XML. (2) The second layer processes the SPC-XML code to make code reductions and optimizations, and it generates (a) performance prediction code and (b) source code. (3) The third layer comprises of (a) PAM-SoC, an embedded predictor that uses the performance code for fast estimation of the application performance, allowing a feedback loop for application tuning before residing to any time-consuming simulations, and (b) Hinch, the run-time system of SP@CE, which facilitates the execution of the code on the hardware/simulator. For evaluating the entire system, we have implemented a set of real-life streaming applications and we present the results obtained by running them on a multi-processor system-on-chip (MPSoC) CE platform, namely the Wasabi/SpaceCAKE architecture from Philips. The experiments show that SP@CE is easy to use, it induces low overhead, and it successfully exploits both data and task parallelism.