Header menu link for other important links
X
Efficiency and expressiveness in UW-OpenMP
Raghesh Aloor,
Published in Association for Computing Machinery
2019
Pages: 182 - 192
Abstract
OpenMP uses the efficient ‘team of workers’ model, where workers are given chunks of tasks (iterations of a parallel-for-loop, or sections in a parallel-sections block) to execute, and worker (not tasks) can be synchronized using barriers. Thus, OpenMP restricts the invocation of barriers in these tasks; as otherwise, the behavior of the program would be dependent on the number of runtime workers. To address such a restriction which can adversely impact programmability and readability, Aloor and Nandivada proposed UW-OpenMP by taking inspiration from the more intuitive interaction of tasks and barriers in newer task parallel languages like X10, HJ, Chapel and so on. UW-OpenMP gives the programmer an impression that each parallel task is executed by a unique worker, and importantly these parallel tasks can be synchronized using a barrier construct. Though UW-OpenMP is a useful extension of OpenMP (more expressive and efficient), it does not admit barriers within recursive functions invoked from parallel-for-loops, because of the inherent challenges in handing them. In this paper, we extend UW-OpenMP (we call it UWOmp++) to address this challenging limitation and in the process also realize more efficient programs. We propose a source to source transformation scheme to translate UWOmp++ C programs to equivalent OpenMP C programs that are guaranteed not to invoke barriers in any task. Our translation uses a novel intermediate representation called UWOmpCPS, which represents a parallel program written in OpenMP in an extended CPS format (admits parallel-for-loops and barriers). The use of this intermediate representation leads us to handle recursive functions within parallel-for-loops efficiently. We have implemented our proposed translation scheme in the ROSE compiler framework. Our preliminary evaluation shows that the proposed language extension to allow recursion helps plug an important gap in expressiveness, without compromising on the efficiency resulting from the ‘team of workers’ model. © 2019 Association for Computing Machinery.
About the journal
JournalData powered by TypesetACM International Conference Proceeding Series
PublisherData powered by TypesetAssociation for Computing Machinery
Open AccessNo
Concepts (15)
  •  related image
    Application programming interfaces (api)
  •  related image
    Efficiency
  •  related image
    Program compilers
  •  related image
    Program translators
  •  related image
    Recursive functions
  •  related image
    Translation (languages)
  •  related image
    Intermediate representations
  •  related image
    INTUITIVE INTERACTION
  •  related image
    NOVEL INTERMEDIATES
  •  related image
    Openmp
  •  related image
    Source-to-source transformations
  •  related image
    TASK PARALLELISM
  •  related image
    TRANSLATION SCHEMES
  •  related image
    WORKER MODELS
  •  related image
    C (programming language)