Abstract
Many task-based programming models have been developed and refined in recent years to support application development for shared memory platforms. Asynchronous tasks are a powerful programming abstraction that offer flexibility in conjunction with great expressivity. Research involving standardized tasking models like OpenMP and non-standardized models like Cilk facilitate improvements in many tasking implementations. While the asynchronous task is arguably a fundamental element of parallel programming, it is the implementation, not the concept, that makes all the difference with respect to the performance that is obtained by a program that is parallelized using tasks. There are many approaches to implementing tasking constructs, but few have also given attention to providing the user with some capabilities for fine tuning the execution of their code. This paper provides an overview of one OpenMP implementation, highlights its main features, discusses the implementation, and demonstrates its performance with user controlled runtime variables.
This material is based upon work supported by the National Science Foundation under Grant No. CCF-0833201 and Grant No. CCF-0917285, and the Texas Space Grant Consortium.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Chapel Specification 0.795 (April 2010)
Barcelona OpenMP Task Suite (January 2011), http://nanos.ac.upc.edu/content/barcelona-openmp-task-suite
Augonnet, C., Thibault, S., Namyst, R.: StarPU: a runtime system for scheduling tasks over accelerator-based multicore machines (2010)
Ayguadé, E., Copty, N., Duran, A., Hoeflinger, J.P., Lin, Y., Massaioli, F., Su, E., Unnikrishnan, P., Zhang, G.: A proposal for task parallelism in OpenMP. In: Chapman, B., Zheng, W., Gao, G.R., Sato, M., Ayguadé, E., Wang, D. (eds.) IWOMP 2007. LNCS, vol. 4935, pp. 1–12. Springer, Heidelberg (2008)
Chapman, B., Mehrotra, P., Rosendale, J.V., Zima, H.: A Software Architecture for Multidisciplinary Applications: Integrating Task and Data Parallelism. Technical Report 94-18, ICASE, MS 132C, NASA Langley Research Center (1994)
Chapman, B.M., Huang, L., Jin, H., Jost, G., de Supinski, B.R.: Toward enhancing OpenMP’s work-sharing directives. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 645–654. Springer, Heidelberg (2006)
Duran, A., Corbalán, J., Ayguadé, E.: An adaptive cut-off for task parallelism. In: Proceedings of the 2008 ACM/IEEE Conference on Supercomputing, SC 2008, pp. 36:1–36:11(2008)
Duran, A., Corbalán, J., Ayguadé, E.: Evaluation of OpenMP task scheduling strategies. In: Eigenmann, R., de Supinski, B.R. (eds.) IWOMP 2008. LNCS, vol. 5004, pp. 100–110. Springer, Heidelberg (2008)
Duran, A., Teruel, X., Ferrer, R., et al.: Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP. In: Proceedings of the 2009 ICPP, pp. 124–131 (2009)
Fatahalian, K., Horn, D., Knight, T., et al.: Sequoia: Programming the memory hierarchy. In: Proceedings of the 2006 ACM/IEEE Conference on Supercomputing, p. 83. ACM, New York (2006)
Foster, I.: Task parallelism and high-performance languages. In: The Data Parallel Programming Model, pp. 179–196 (1996)
Foster, I., Kesselman, C., Tuecke, S.: The Nexus task-parallel runtime system. In: Proc. 1st Intl Workshop on Parallel Processing, pp. 457–462. Tata McGraw Hill, New York (1994)
Frigo, M., Leiserson, C., Randall, K.: The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices 33(5), 212–223 (1998)
Gross, T., O’Hallaron, D., Subhlok, J.: Task parallelism in a High Performance Fortran framework. IEEE Parallel and Distributed Technology 2(3), 16–26 (1994)
Hernandez, O., Nanjegowda, R., Chapman, B., Bui, V., Kufrin, R.: Open Source Software Support for the OpenMP Runtime API for Profiling. In: ICPPW 2009, pp. 130–137. IEEE, Los Alamitos (2009)
Hernandez, O., Song, F., Chapman, B., et al.: Performance instrumentation and compiler optimizations for MPI/OpenMP applications. In: Second International Workshop on OpenMP (2006)
Kambadur, P., Gupta, A., Ghoting, A., Avron, H., Lumsdaine, A.: PFunc: modern task parallelism for modern high performance computing. In: SC 2009, pp. 43:1–43:11. ACM, New York (2009)
Korch, M., Rauber, T.: A comparison of task pools for dynamic load balancing of irregular algorithms. Concurrency and Computation: Practice and Experience 16(1), 1–47 (2004)
Liao, C., Hernandez, O., Chapman, B., Chen, W., Zheng, W.: OpenUH: An optimizing, portable OpenMP compiler. In: 12th Workshop on Compilers for Parallel Computers (January 2006)
Libenzi, D.: Portable coroutine library, http://www.xmailserver.org/libpcl.html
Nanjegowda, R., Hernandez, O., Chapman, B., Jin, H.: Scalability evaluation of barrier algorithms for OpenMP. Evolving OpenMP in an Age of Extreme Parallelism, 42–52 (2009)
The OpenUH Compiler Project (2011), http://www.cs.uh.edu/~openuh
Saraswat, V.: Report on the experimental language X10 version 2.0.4. Technical report, IBM (June 2010)
Su, E., Tian, X., Girkar, M., Haab, G., Shah, S., Peterson, P.: Compiler support of the workqueing execution model for Intel SMP architectures. In: EWOMP (2002)
Supercomputing Technologies Group, MIT Laboratory for Computer Science. Cilk 5.3.1 Reference Manual (2000)
Van der Wijngaart, R., Jin, H.: NAS Parallel Benchmarks, Multi-Zone Versions. Technical Report NAS-03-010, NASA Advanced Supercomputer (NAS) Division NASA Ames Research Center (2003)
Weng, T.-H., Chapman, B.: Implementing OpenMP using dataflow execution model for data locality and efficient parallel execution. In: Proceedings of the 7th Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS-7), IEEE Computer Society Press, Los Alamitos (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
LaGrone, J., Aribuki, A., Addison, C., Chapman, B. (2011). A Runtime Implementation of OpenMP Tasks. In: Chapman, B.M., Gropp, W.D., Kumaran, K., Müller, M.S. (eds) OpenMP in the Petascale Era. IWOMP 2011. Lecture Notes in Computer Science, vol 6665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21487-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-21487-5_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21486-8
Online ISBN: 978-3-642-21487-5
eBook Packages: Computer ScienceComputer Science (R0)