DSPE: Domain Specific Language for Parallel Real-Time Stream Processing
Today, the evolution of software solutions for parallel processing is strong, as a consequence of the mainstream introduction of chip-level multiprocessors. These types of parallel processors, which include general-purpose multi-cores and graphical processing units (GPUs), allow the execution of very intensive computations. However, depending on the nature of the executed applications, their effective exploitation may represent a complex task. In terms of parallel processing, the family of stream-processing applications is appealing because it features some forms of parallelism that may be exploited systematically. However, the processing performed by these types of applications is often real-time and, therefore, special-purpose support for parallel processing is required. The main contribution of this thesis is the DIGITAL STREAM-PROCESSING ENVIRONMENT (DSPE): an open-source development environment for rapid prototyping and customizing parallel real-time stream-processing applications. DSPE features a domain-specific language (DSL) based on model-driven generative programming that allows specifying applications at a high abstraction level. From the information provided with the DSL, generators are utilized to automatically produce the source code of applications. The source code generated by DSPE features dedicated infrastructures for parallel processing in stream-processing applications. These infrastructures are based on event-driven scheduling and on dynamic load balancing of lightweight tasks, which are techniques that limit the impact of load imbalances when parallel stream processing. Furthermore, DSPE supports the integration of kernels for GPUs for the exploitation of heterogeneous combinations of multi-core processors and GPUs. In DSPE, the generated source code can be configured to fit application- and hardware-specific needs. Furthermore, profile-guided, model-to-model transformations ease the migration from a serial version of an application to a parallel processing version. Experiments performed with DSPE on micro-benchmarks and sample applications demonstrate that the adopted approaches facilitate obtaining linear or near-to-linear scalings of the speed-up, when progressively incrementing the number of utilized processor cores.
Keywords: stream processing ; parallel processing ; real-time processing ; domain-specific language ; lightweight tasks ; soft coprocessors ; event-driven scheduling ; dynamic load balancing ; profile-guided optimization ; rapid prototyping ; software customization ; model-driven development ; generative programming ; component-based development ; aspect-oriented domain modelling ; multi-core processors ; graphical processing units ; heterogeneous processors ; stream processing ; exécution parallèle ; exécution temps réel ; langage domain-specific ; lightweight tasks ; soft coprocessors ; scheduling à évènements ; balancement dynamique de l'exécution ; optimisation basée sur profils d'exécution ; prototypage rapide ; customisation d'application ; développement basé sur modèle ; programmation générative ; développement basé sur composants ; modélisation aspect-oriented ; processeurs multi-coeurs ; graphical processing units ; processeurs hétérogènesThèse École polytechnique fédérale de Lausanne EPFL, n° 5326 (2012)
Programme doctoral Informatique, Communications et Information
Faculté des sciences et techniques de l'ingénieur
Institut de génie électrique et électronique
Laboratoire de traitement des signaux 5
Record created on 2012-02-02, modified on 2016-08-09