• DocumentCode
    3543186
  • Title

    Parallel Patterns + Macro Data Flow for Multi-core Programming

  • Author

    Aldinucci, M. ; Anardu, L. ; Danelutto, M. ; Torquati, M. ; Kilpatrick, P.

  • Author_Institution
    Dept. Comput. Sci., Univ. of Torino, Turino, Italy
  • fYear
    2012
  • fDate
    15-17 Feb. 2012
  • Firstpage
    27
  • Lastpage
    36
  • Abstract
    Data flow techniques have been around since the early ´70s when they were used in compilers for sequential languages. Shortly after their introduction they were also considered as a possible model for parallel computing, although the impact here was limited. Recently, however, data flow has been identified as a candidate for efficient implementation of various programming models on multi-core architectures. In most cases, however, the burden of determining data flow ``macro´´ instructions is left to the programmer, while the compiler/run time system manages only the efficient scheduling of these instructions. We discuss a structured parallel programming approach supporting automatic compilation of programs to macro data flow and we show experimental results demonstrating the feasibility of the approach and the efficiency of the resulting ``object´´ code on different classes of state-of-the-art multi-core architectures. The experimental results use different base mechanisms to implement the macro data flow run time support, from plain pthreads with condition variables to more modern and effective lock- and fence-free parallel frameworks. Experimental results comparing efficiency of the proposed approach with those achieved using other, more classical, parallel frameworks are also presented.
  • Keywords
    data flow analysis; multiprocessing systems; parallel architectures; parallel programming; program compilers; automatic progrram compilation; compiler system; data flow macro instruction; data flow technique; fence-free parallel framework; instruction scheduling; lock-free parallel framework; macro data flow; multicore architecture; multicore programming; object code; parallel pattern; plain pthreads; programming model; run time system; structured parallel programming; Algorithm design and analysis; Computer architecture; Data models; Instruction sets; Pipelines; Programming; Skeleton; lock-free queues; macro data flow; multi-core; shared memory; structured programming;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel, Distributed and Network-Based Processing (PDP), 2012 20th Euromicro International Conference on
  • Conference_Location
    Garching
  • ISSN
    1066-6192
  • Print_ISBN
    978-1-4673-0226-5
  • Type

    conf

  • DOI
    10.1109/PDP.2012.44
  • Filename
    6169525