Enhancing the Expressivity of OpenMP API through Task-to-Task Synchronization



Journal Title

Journal ISSN

Volume Title



OpenMP is an application programmer interface that provides a parallel program- ming model that has been successfully used to parallelize sequential applications on shared-memory systems. The current OpenMP specification provides the ability to create independent tasks but lacks a provision for task-to-task synchronization, which limits its expressivity for parallelizing some common algorithms. Tasks can be the basic execution unit of future OpenMP runtime implementations, so the ability to use them in a flexible manner will require increased expressivity and flexibility before adoption by users will become widespread. Enhancements to the API will enable scalability and productivity in existing and future implementations. In this thesis, I present a novel approach to providing task-to-task synchronization in the OpenMP programming model and a corresponding extension to the OpenMP Application Programmer Interface. I include a reference implementation for the run- time library, a basic design for a compiler translation of the proposed constructs, and a case study showing favorable results. This work demonstrates how the OpenMP API can be improved with respect to expressivity of the language.



Parallel programming, Shared Memory, Programming languages, OpenMP