Auto-scoping for OpenMP Tasks
Auto-scoping analysis for OpenMP must be revised owing to the introduction of asynchronous parallelism in the form of tasks. Auto-scoping is the process of automatically determine the data-sharing of variables. This process has been implemented for worksharing and parallel regions. Based on the previous work, we present an auto-scoping algorithm to work with OpenMP tasks. This is a much more complex challenge due to the uncertainty of when a task will be executed, which makes it harder to determine what parts of the program will run concurrently. We also introduce an implementation of the algorithm and results with several benchmarks showing that the algorithm is able to correctly scope a large percentage of the variables appearing in them.
KeywordsData Race Synchronization Point Clause Default OpenMP Program Concurrent Region
Unable to display preview. Download preview PDF.
- 2.Duran, A., Teruel, X., Ferrer, R., Martorell, X., Ayguadé, E.: Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP. In: 38th International Conference on Parallel Processing, ICPP 2009, Vienna, Austria, pp. 124–131. IEEE Computer Society (September 2009)Google Scholar
- 3.Barcelona Supercomputing Center. The NANOS Group Site: The Mercurium Compiler, http://nanos.ac.upc.edu/mcxx
- 4.Quinlan, D., et al.: Rose compiler infrastructure (2012), http://rosecompiler.org
- 6.OpenMP ARB. OpenMP Application Program Interface, v. 3.1 (September 2011)Google Scholar
- 7.Oracle. Oracle Solaris Studio 12.3: OpenMP API User’s Guide (2010), http://docs.oracle.com/cd/E24457_01/html/E21996/index.html
- 8.Royuela, S.: Compiler Analysis and its Application to OmpSs. Master’s thesis, Technical University of Catalonia, 1012Google Scholar