Skip to main content
Log in

Automatic scoping of task clauses for the OpenMP tasking model

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

OpenMP provides an easy-to-learn and powerful programming environment for the development of parallel programs. We propose here an algorithm for the automatic correction of the OpenMP tasking model. Assuming a compiler or programmer has identified task regions in the source programs, the proposed algorithm will automatically generate correct task clauses and synchronization. The proposed algorithm is implemented here based on the ROSE compiler infrastructure; 14 benchmark programs are tested, each of which has had all clauses in the task directives removed for the evaluation. The results of this experimental evaluation show that the proposed technique can successfully generate correct clauses for the tested benchmark programs. The proposed technique can simplify the parallelizing of programs using the OpenMP tasking model, making parallel programming more effective and productive.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  1. Aho AV, Sethi R, Ullman JD (1986) Compilers: principles, techniques, and tools. Addison Wesley

  2. Allen R, Kennedy K (2001) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann

  3. Arabnia H, Smith JW (1993) A reconfigurable interconnection network for imaging operations and its implementation using a multi-stage switching box. In: International conference on high performance computing: New Horizons (Alberta, Canada, 1993), pp 349–357

  4. Arabnia HR (1990) A parallel algorithm for the arbitrary rotation of digitized images using process-and-data-decomposition approach. J Parallel Distrib Comput 10(2):188–192

    Article  Google Scholar 

  5. Aslot V, Domeika MJ, Eigenmann R, Gaertner G, Jones WB, Parady B (2001) Specomp: a new benchmark suite for measuring parallel computer performance. In: Proceedings of the international workshop on OpenMP applications and tools: OpenMP shared memory parallel programming (London, UK, UK, 2001), WOMPAT ’01, Springer, pp 1–10

  6. Ayguadé E, Copty N, Duran A, Hoeflinger J, Lin Y, Massaioli F, Teruel X, Unnikrishnan P, Zhang G (2009) The design of openmp tasks. IEEE Trans Parallel Distrib Syst 20(3):404–418

    Article  Google Scholar 

  7. Bhandarkar SM, Arabnia HR (1995) The refine multiprocessor theoretical properties and algorithms. Parallel Comput 21(11):1783–1805

    Article  Google Scholar 

  8. Bik A, Girkar M, Grey P, Tian X (2001) Efficient exploitation of parallelism on Pentium III and Pentium 4 processor-based systems. Intel Technol J Q1:9

    Google Scholar 

  9. Bondhugula U, Baskaran M, Krishnamoorthy S, Ramanujam J, Rountev A, Sadayappan P (2008) Automatic transformations for communication-minimized parallelization and locality optimization in the polyhedral model. In: International conference on compiler construction (ETAPS CC)

  10. Duran A, Corbalan J, Ayguade E (2008) Evaluation of openmp task scheduling strategies. In: OpenMP in a new era of parallelism (4th IWOMP’08), Eigenmann R, de Supinski BR eds vol 5004 of lecture notes in computer science (LNCS). Springer, New York, West Lafayette, IN, USA, pp 100–110

  11. Duran A, Teruel X, Ferrer R, Martorell X, Ayguade E (2009) Barcelona openmp tasks suite: a set of benchmarks targeting the exploitation of task parallelism in openmp. In: Proceedings of 2009 international conference on parallel processing (38th ICPP’09) CD-ROM (Vienna, Austria, Sept. 2009), IEEE Computer Society

  12. Intel. Automatic parallelization with intel compilers. http://software.intel.com/en-us/articles/automatic-parallelization-with-intel-compilers/. [Online; Accessed 1 July 2011]

  13. Jin H, Jost G, Yan J, Ayguade E, Gonzalez M, Martorell X (2003) Automatic multilevel parallelization using openmp. Sci Progr 11(2):177–190

    Google Scholar 

  14. Johnson S, Evans E, Jin H, Ierotheou C (2005) The parawise expert assistant - widening accessibility to efficient and scalable tool generated openmp code. In: Proceedings of the 5th international conference on OpenMP applications and tools: shared memory parallel programming with OpenMP (Berlin, 2005), WOMPAT’04, Springer, pp 67–82

  15. Karpov A (2009) Peaceful coexistence of pc-lint and vivamp. http://www.viva64.com/en/b/0005/ [Online; Accessed 1 July 2011]

  16. Liao C, Quinlan DJ, Panas T, de Supinski BR (2010) A ROSE-based openmp 3.0 research compiler supporting multiple runtime libraries. In: IWOMP, Sato M, Hanawa T, Müller MS, Chapman BM, de Supinski BR eds vol 6132 of lecture notes in computer science, Springer, pp 15–28

  17. Liao C, Quinlan DJ, Willcock J, Panas T (2010) Semantic-aware automatic parallelization of modern applications using high-level abstractions. Int J Parallel Program 38(5–6):361–378

    Article  MATH  Google Scholar 

  18. Lin Y, Terboven C, Mey DA, Copty N (2005) Automatic scoping of variables in parallel regions of an openmp program. In: Proceedings of the 5th international conference on OpenMP applications and tools: shared memory parallel programming with OpenMP, WOMPAT’04, Springer, Berlin, pp 83–97

  19. Mattson T, Sanders B, Massingill B (2004) Patterns for parallel programming, 1st edn Addison-Wesley Professional

  20. Muchnick S (1997) Advanced compiler design and implementation. Morgan Kaufmann

  21. Müller MS, Neytchev P (2003) An openmp validation suite., In: Fifth European workshop on OpenMPAachen University, Germany

    Google Scholar 

  22. OpenMP architecture review board (2011) OpenMP application program interface, 3.1 edn. Online available at http://www.openmp.org

  23. Oracle (2012) Oracle solaris studio 12.3: OpenMP API USer’s Guide. http://docs.oracle.com/cd/E24457_01/html/E21996/, [Online; Accessed 1 Sept 2013]

  24. Padua DA, Wolfe MJ (1986) Advanced compiler optimizations for supercomputers. Commun ACM 29(12):1184–1201

    Article  Google Scholar 

  25. Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226

    Article  Google Scholar 

  26. Royuela S, Duran A, Liao C, Quinlan DJ (2012) Auto-scoping for openmp tasks. In: Proceedings of the 8th international conference on OpenMP in a heterogeneous World, IWOMP’12, Springer, Berlin, pp 29–43

  27. Voss M, Chiu E, Chow PMY, Wong C, Yuen K (2005) An evaluation of auto-scoping in openmp. In: Proceedings of the 5th international conference on OpenMP applications and tools: shared memory parallel programming with OpenMP, WOMPAT’04, Springer, Berlin, pp 98–109

  28. Website. Programming of parallel computers, assignment 3, gram-schmidt. https://github.com/yohannteston/Parallel-course-Ass3/. [Online; Accessed 1 July 2011]

  29. Wolfe MJ (1995) High performance compilers for parallel computing. Addison Wesley, Boston

    Google Scholar 

Download references

Acknowledgments

This work was sponsored by the National Science Council of Taiwan under Grants NSC-100-2221-E-194-034-MY2 and 102-2221-E-194-031-MY3. The authors are grateful to the National Center for High-Performance Computing for computer time and facilities.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peng-Sheng Chen.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, CK., Chen, PS. Automatic scoping of task clauses for the OpenMP tasking model. J Supercomput 71, 808–823 (2015). https://doi.org/10.1007/s11227-014-1326-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-014-1326-3

Keywords

Navigation