Expressiveness and Data-Flow Compilation of OpenMP Streaming Programs
نویسندگان
چکیده
We present a dataow extension of OpenMP to express highly dynamic control and data ow over nested, dependent tasks. The language supports dynamic creation, modular composition, variable and unbounded sets of producers/consumers, separate compilation, and rstclass streams. These features, enabled by our original compilation ow, allow translating high-level parallel programming patterns, like dependences arising from StarSs' array regions, or universal low-level primitives like futures. In particular, these dynamic features can be embedded e ciently and naturally into an unmanaged imperative language, avoiding the complexity and overhead of a concurrent garbage collector. We demonstrate the performance advantages of a dataow execution model compared to more restricted task and barrier models. We also demonstrate the e ciency of our compilation and runtime algorithms for the support of complex dependence patterns arising from StarSs benchmarks. Key-words: Dataow computing, stream computing, parallel programming, compilation. This work is supported by the European Commission through the FP7 projects TERAFLUX id. 249013 and PHARAON id. 288307. Expressivité et compilation ot de données de programmes streaming OpenMP Résumé : Ce papier présente une extension du langage OpenMP permettant d'exprimer le parallélisme sous forme de tâches dépendantes imbriquées avec ots de contrôle et de données dynamiques. Ce nouveau modèle de programmation permet la création dynamique de tâches, la composition et la compilation modulaires, ainsi que des ensembles variables, non bornés, de producteurs et consommateurs dans des ots de données, ou streams, de première classe. Nous présentons un nouvel algorithme de génération de code permettant de traduire des constructions de programmation parallèle de haut niveau, comme les dépendances issues des régions de tableaux du langage StarSs, ou des primitives universelles, de bas niveau, telles que les futures. Nous montrons que ces propriétés dynamiques peuvent être e cacement intégrées dans un langage impératif avec gestion explicite de la mémoire, évitant ainsi la complexité et le coût d'un ramassemiettes concurrent. Mots-clés : Calcul par ot de données, streaming, programmation parallèle, compilation. Expressiveness and Data-Flow Compilation of OpenMP Streaming Programs 3
منابع مشابه
Managing Compilation Overheads in a Runtime Specializer for OpenMP
While runtime compilation has in practice been largely restricted to programming languages that execute on virtual machines, such as Java and C#, parallel OpenMP programs show many promising traits for efficient and effective runtime optimization. The stOMP system for the runtime optimization of OpenMP applications is currently under development at the University of Toronto. One of the key issu...
متن کاملExplicit Vector Programming with OpenMP 4.0 SIMD Extensions
Modern CPU and GPU processors with on-die integration of SIMD execution units for achieving higher performance and power efficiency have posed challenges to use the underlying SIMD hardware (or VPUs, Vector Processing Unit) effectively. Wide vector registers and SIMD instructions –Single Instructions operating on Multiple Data elements packed in wide registers such as AltiVec [2], SSE, AVX[10] ...
متن کاملAdvances in Parallel-Stage Decoupled Software Pipelining Leveraging Loop Distribution, Stream-Computing and the SSA Form
Decoupled Software Pipelining (DSWP) is a program partitioning method enabling compilers to extract pipeline parallelism from sequential programs. Parallel Stage DSWP (PS-DSWP) is an extension that also exploits the data parallelism within pipeline filters. This paper presents the preliminary design of a new PS-DSWP method capable of handling arbitrary structured control flow, a slightly better...
متن کاملAdvances in Parallel-Stage Decoupled Software Pipelining
Decoupled Software Pipelining (DSWP) is a program partitioning method enabling compilers to extract pipeline parallelism from sequential programs. Parallel Stage DSWP (PS-DSWP) is an extension that also exploits the data parallelism within pipeline filters. This paper presents the preliminary design of a new PS-DSWP method capable of handling arbitrary structured control flow, a slightly better...
متن کاملParallel Data Flow Analysis for OpenMP Programs
The paper presents a compiler framework for analyzing and optimizing OpenMP programs. The framework includes Parallel Control Flow Graph and Parallel Data Flow equations based on the OpenMP relaxed memory consistency model. It enables traditional compiler analyses as well as specific optimizations for OpenMP. Based on the framework, we describe dead code elimination and barrier elimination algo...
متن کامل