A Runtime Implementation of OpenMP Tasks

  • James LaGrone
  • Ayodunni Aribuki
  • Cody Addison
  • Barbara Chapman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6665)

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.

Keywords

OpenMP Tasks Parallel Programming Models Runtime Systems 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Chapel Specification 0.795 (April 2010)Google Scholar
  2. 2.
    Barcelona OpenMP Task Suite (January 2011), http://nanos.ac.upc.edu/content/barcelona-openmp-task-suite
  3. 3.
    Augonnet, C., Thibault, S., Namyst, R.: StarPU: a runtime system for scheduling tasks over accelerator-based multicore machines (2010)Google Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    Foster, I.: Task parallelism and high-performance languages. In: The Data Parallel Programming Model, pp. 179–196 (1996)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Frigo, M., Leiserson, C., Randall, K.: The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices 33(5), 212–223 (1998)CrossRefGoogle Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Hernandez, O., Song, F., Chapman, B., et al.: Performance instrumentation and compiler optimizations for MPI/OpenMP applications. In: Second International Workshop on OpenMP (2006)Google Scholar
  17. 17.
    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)Google Scholar
  18. 18.
    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)CrossRefGoogle Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    Libenzi, D.: Portable coroutine library, http://www.xmailserver.org/libpcl.html
  21. 21.
    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)Google Scholar
  22. 22.
    The OpenUH Compiler Project (2011), http://www.cs.uh.edu/~openuh
  23. 23.
    Saraswat, V.: Report on the experimental language X10 version 2.0.4. Technical report, IBM (June 2010)Google Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    Supercomputing Technologies Group, MIT Laboratory for Computer Science. Cilk 5.3.1 Reference Manual (2000)Google Scholar
  26. 26.
    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)Google Scholar
  27. 27.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • James LaGrone
    • 1
  • Ayodunni Aribuki
    • 1
  • Cody Addison
    • 2
  • Barbara Chapman
    • 1
  1. 1.University of HoustonHoustonUSA
  2. 2.Texas Instruments IncorporatedStaffordUSA

Personalised recommendations