8481 articles  [version française]

hal-00710409, version 2

Expressiveness and Data-Flow Compilation of OpenMP Streaming Programs

Antoniu Pop () a1, Albert Cohen () a1

N° RR-8001 (2012)

  • a –  INRIA
  • 1:  PARKAS (INRIA Paris-Rocquencourt)
  • http://www.di.ens.fr/ParkasTeam.html
    INRIA – Ecole normale supérieure de Paris - ENS Paris – CNRS : UMR 8548 Département d'informatique École normale supérieure 45 rue d'Ulm F-75230 Paris Cedex 05 France
  • Available versions :  v1 (2012-06-21) v2 (2012-07-02)
  • Bibliographic reference

    • Type of document: Research reports
    • Domain: Computer Science/Distributed, Parallel, and Cluster Computing
    • Title: Expressiveness and Data-Flow Compilation of OpenMP Streaming Programs
    • Abstract: We present a data-flow extension of OpenMP to express highly dynamic control and data flow over nested, dependent tasks. The language supports dynamic creation, modular composition, variable and unbounded sets of producers/consumers, separate compilation, and first-class streams. These features, enabled by our original compilation flow, 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 efficiently and naturally into an unmanaged imperative language, avoiding the complexity and overhead of a concurrent garbage collector. We demonstrate the performance advantages of a data-flow execution model compared to more restricted task and barrier models. We also demonstrate the efficiency of our compilation and runtime algorithms for the support of complex dependence patterns arising from StarSs benchmarks.
    • Abstract in french: 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 flots 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 flots 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 efficacement 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 ramasse-miettes concurrent.
    • ACM Classification:
      D.: Software/D.3: PROGRAMMING LANGUAGES/D.3.3: Language Constructs and Features/D.3.3.2: Concurrent programming structures
      D.: Software/D.1: PROGRAMMING TECHNIQUES/D.1.3: Concurrent Programming/D.1.3.1: Parallel programming
    • Full text language: English
    • Report type: Research Report
    • Page number: 28
    • Publication date: 2012-06
    • See also (url): http://www.di.ens.fr/StreamingOpenMP
    • Keywords: Data-flow computing – stream computing – parallel programming – compilation
    • Internal note: RR-8001
    • European project:
      Cordis number 249013
      Acronyme TERAFLUX
      Title Exploiting dataflow parallelism in Teradevice Computing
      Funded by ICT
      Start date 2009-12-31
      End date 2013-12-31
      Call identifier FP7-ICT-2009-4

    Attached file list to this document: 

    PDF
    RR-8001.pdf(826.6 KB)
     
    • hal-00710409, version 2
    • oai:hal.inria.fr:hal-00710409
    • From: 
    • Submitted on: Monday, 2 July 2012 15:23:55
    • Updated on: Monday, 2 July 2012 16:29:40