Chapman, Barbara M.2014-03-132014-03-13December 22013-12http://hdl.handle.net/10657/570OpenMP 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.application/pdfengThe author of this work is the copyright owner. UH Libraries and the Texas Digital Library have their permission to store and provide access to this work. Further transmission, reproduction, or presentation of this work is prohibited except with permission of the author(s).Parallel programmingShared MemoryProgramming languagesOpenMPComputer scienceEnhancing the Expressivity of OpenMP API through Task-to-Task Synchronization2014-03-13Thesisborn digital