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.
Similar content being viewed by others
References
Aho AV, Sethi R, Ullman JD (1986) Compilers: principles, techniques, and tools. Addison Wesley
Allen R, Kennedy K (2001) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann
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
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
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
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
Bhandarkar SM, Arabnia HR (1995) The refine multiprocessor theoretical properties and algorithms. Parallel Comput 21(11):1783–1805
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
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)
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
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
Intel. Automatic parallelization with intel compilers. http://software.intel.com/en-us/articles/automatic-parallelization-with-intel-compilers/. [Online; Accessed 1 July 2011]
Jin H, Jost G, Yan J, Ayguade E, Gonzalez M, Martorell X (2003) Automatic multilevel parallelization using openmp. Sci Progr 11(2):177–190
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
Karpov A (2009) Peaceful coexistence of pc-lint and vivamp. http://www.viva64.com/en/b/0005/ [Online; Accessed 1 July 2011]
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
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
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
Mattson T, Sanders B, Massingill B (2004) Patterns for parallel programming, 1st edn Addison-Wesley Professional
Muchnick S (1997) Advanced compiler design and implementation. Morgan Kaufmann
Müller MS, Neytchev P (2003) An openmp validation suite., In: Fifth European workshop on OpenMPAachen University, Germany
OpenMP architecture review board (2011) OpenMP application program interface, 3.1 edn. Online available at http://www.openmp.org
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]
Padua DA, Wolfe MJ (1986) Advanced compiler optimizations for supercomputers. Commun ACM 29(12):1184–1201
Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226
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
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
Website. Programming of parallel computers, assignment 3, gram-schmidt. https://github.com/yohannteston/Parallel-course-Ass3/. [Online; Accessed 1 July 2011]
Wolfe MJ (1995) High performance compilers for parallel computing. Addison Wesley, Boston
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
Corresponding author
Rights and permissions
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-014-1326-3