The Journal of Supercomputing

, Volume 71, Issue 3, pp 808–823 | Cite as

Automatic scoping of task clauses for the OpenMP tasking model

Article
  • 161 Downloads

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.

Keywords

OpenMP Tasking model Parallelization Validation 

References

  1. 1.
    Aho AV, Sethi R, Ullman JD (1986) Compilers: principles, techniques, and tools. Addison WesleyGoogle Scholar
  2. 2.
    Allen R, Kennedy K (2001) Optimizing compilers for modern architectures: a dependence-based approach. Morgan KaufmannGoogle Scholar
  3. 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–357Google Scholar
  4. 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–192CrossRefGoogle Scholar
  5. 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–10Google Scholar
  6. 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–418CrossRefGoogle Scholar
  7. 7.
    Bhandarkar SM, Arabnia HR (1995) The refine multiprocessor theoretical properties and algorithms. Parallel Comput 21(11):1783–1805CrossRefGoogle Scholar
  8. 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:9Google Scholar
  9. 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)Google Scholar
  10. 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–110Google Scholar
  11. 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 SocietyGoogle Scholar
  12. 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. 13.
    Jin H, Jost G, Yan J, Ayguade E, Gonzalez M, Martorell X (2003) Automatic multilevel parallelization using openmp. Sci Progr 11(2):177–190Google Scholar
  14. 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–82Google Scholar
  15. 15.
    Karpov A (2009) Peaceful coexistence of pc-lint and vivamp. http://www.viva64.com/en/b/0005/ [Online; Accessed 1 July 2011]
  16. 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–28Google Scholar
  17. 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–378CrossRefMATHGoogle Scholar
  18. 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–97Google Scholar
  19. 19.
    Mattson T, Sanders B, Massingill B (2004) Patterns for parallel programming, 1st edn Addison-Wesley ProfessionalGoogle Scholar
  20. 20.
    Muchnick S (1997) Advanced compiler design and implementation. Morgan KaufmannGoogle Scholar
  21. 21.
    Müller MS, Neytchev P (2003) An openmp validation suite., In: Fifth European workshop on OpenMPAachen University, GermanyGoogle Scholar
  22. 22.
    OpenMP architecture review board (2011) OpenMP application program interface, 3.1 edn. Online available at http://www.openmp.org
  23. 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. 24.
    Padua DA, Wolfe MJ (1986) Advanced compiler optimizations for supercomputers. Commun ACM 29(12):1184–1201CrossRefGoogle Scholar
  25. 25.
    Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226CrossRefGoogle Scholar
  26. 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–43Google Scholar
  27. 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–109Google Scholar
  28. 28.
    Website. Programming of parallel computers, assignment 3, gram-schmidt. https://github.com/yohannteston/Parallel-course-Ass3/. [Online; Accessed 1 July 2011]
  29. 29.
    Wolfe MJ (1995) High performance compilers for parallel computing. Addison Wesley, BostonGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  1. 1.Department of Computer Science and Information EngineeringNational Chung Cheng UniversityChiayiTaiwan
  2. 2.Department of Computer Science and Information Engineering, Advanced Institute of Manufacturing for High-tech InnovationsNational Chung Cheng UniversityChiayiTaiwan

Personalised recommendations