The Design of OpenMP Tasks
Top Cited Papers
- 27 June 2008
- journal article
- research article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 20 (3) , 404-418
Abstract
OpenMP has been very successful in exploiting structured parallelism in applications. With increasing application complexity, there is a growing need for addressing irregular parallelism in the presence of complicated control structures. This is evident in various efforts by the industry and research communities to provide a solution to this challenging problem. One of the primary goals of OpenMP 3.0 is to define a standard dialect to express and efficiently exploit unstructured parallelism. This paper presents the design of the OpenMP tasking model by members of the OpenMP 3.0 tasking sub-committee which was formed for this purpose. The paper summarizes the efforts of the sub-committee (spanning over two years) in designing, evaluating and seamlessly integrating the tasking model into the OpenMP specification. In this paper, we present the design goals and key features of the tasking model, including a rich set of examples and an in-depth discussion of the rationale behind various design choices. We compare a prototype implementation of the tasking model with existing models, and evaluate it on a wide range of applications. The comparison shows that the OpenMP tasking model provides expressiveness, flexibility, and huge potential for performance and scalability.Keywords
This publication has 17 references indexed in Scilit:
- Support for OpenMP tasks in Nanos v4Proceedings of the 2007 conference of the center for advanced studies on Collaborative research - CASCON '07, 2007
- Load balancing and OpenMP implementation of nested parallelismParallel Computing, 2005
- OpenMP parallelization of agent-based modelsParallel Computing, 2005
- Tlib—a library to support programming with hierarchical multi-processor tasksJournal of Parallel and Distributed Computing, 2005
- The cascade high productivity language2004
- Exploiting pipelined executions in OpenMP2003
- Approaches for integrating task and data parallelismIEEE Concurrency, 1998
- The implementation of the Cilk-5 multithreaded language1998
- A framework for exploiting task and data parallelism on distributed memory multicomputersIEEE Transactions on Parallel and Distributed Systems, 1997
- An algorithm for the machine calculation of complex Fourier seriesMathematics of Computation, 1965