Abstract
Array data flow analysis (ADFA) is a classical method for collecting array section information in sequential programs. When applying ADFA to parallel OpenMP programs, array access information needs to be analyzed in loops whose iteration spaces are partitioned across threads. The analysis involves symbolic expressions that are functions of the original loop iteration spaces, subscript expressions and thread numbers. Adequate representations of, and operations on, these expressions can be critical for the accuracy of the analysis. This paper presents a new ADFA compiler framework for OpenMP programs. We introduce the \(\pi \) operator to abstractly represent the parallelism effects in array section expressions and improve the accuracy of the cross-thread analysis during data flow computation. We also present a novel delayed symbolic evaluation technique that enables all array section operations in the data flow computation to be performed fully accurately. Using four NAS OpenMP benchmarks, we show that the \(\pi \) operator improves array section operations’ accuracy (i.e., reduces conservative operations) during data flow computation by \(66\) %, on average, compared to the best alternative. In addition, it reduces the number of terms, and thus the complexity of computed array sections by \(33\) %, on average. We also show that delayed symbolic evaluation eliminates conservative operations and does so without significant increase in complexity when combined with \(\pi \) operators.
This work was supported, in part, by the National Science Foundation under grants No. 0720471-CNS, 0707931-CNS, 0833115-CCF, 0916817-CCF and 1346896-CCF.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
NAS Parallel Benchmarks 3.3. http://www.nas.nasa.gov/publications/npb.html
OpenMP Application Programming Interface 4.0. http://openmp.org
Bae, H., Mustafa, D., Lee, J.W., Lin, A.H., Eigenmann, C.D.R., Midkiff, S.: The cetus source-to-source compiler infrastructure. Int. J. Parallel Program. 41(6), 1–15 (2012)
Basumallik, A., Eigenmann, R.: Incorporation of OpenMP memory consistency into conventional dataflow analysis. In: Eigenmann, R., de Supinski, B.R. (eds.) IWOMP 2008. LNCS, vol. 5004, pp. 71–82. Springer, Heidelberg (2008)
Butenhof, D.R.: Programming with POSIX Threads. Addison-Wesley Longman Publishing Co. Inc., Boston (1997)
Granston, E.D., Veidenbaum, A.V.: Combining flow and dependence analyses to expose redundant array accesses. Int. J. Parallel Prog. 23(5), 423–470 (1995)
Havlak, P., Kennedy, K.: An implementation of interprocedural bounded regular section analysis. IEEE Trans. Parallel Distrib. Syst. 2(3), 350–360 (1991)
Kwon, O., Jubair, F., Eigenmann, R., Midkiff, S.: A hybrid approach of OpenMP for clusters. In: Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), New Orleans, Louisiana, pp. 75–84 (2012)
Kwon, O., Jubair, F., Min, S.-J., Bae, H., Eigenmann, R., Midkiff, S.P.: Automatic scaling of OpenMP beyond shared memory. In: Rajopadhye, S., Mills Strout, M. (eds.) LCPC 2011. LNCS, vol. 7146, pp. 1–15. Springer, Heidelberg (2013)
Li, Y., Abousamra, A., Melhem, R., Jones, A.K.: Compiler-assisted data distribution for chip multiprocessors. In: Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques (PACT), Vienna, Austria, pp. 501–512 (2010)
Liu, Z., Chapman, B.M., Weng, T.-H., Hernandez, O.: Improving the performance of OpenMP by array privatization. In: Voss, M.J. (ed.) WOMPAT 2003. LNCS, vol. 2716, pp. 244–259. Springer, Heidelberg (2003)
McGinn, S.F., Shaw, R.E.: Parallel gaussian elimination using OpenMP and MPI. In: Proceedings of the 16th Annual International Symposium on High Performance Computing Systems and Applications (HPCS), Washington, DC, pp. 169–173 (2002)
NAS Parallel Benchmarks version 3.3. http://www.nas.nasa.gov/publications/npb.html
Satoh, S., Kusano, K., Sato, M.: Compiler optimization techniques for OpenMP programs. Sci. Program. 9(203), 131–142 (2001)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Jubair, F., Kwon, O., Eigenmann, R., Midkiff, S. (2015). \(\pi \) Abstraction: Parallelism-Aware Array Data Flow Analysis for OpenMP. In: Brodman, J., Tu, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2014. Lecture Notes in Computer Science(), vol 8967. Springer, Cham. https://doi.org/10.1007/978-3-319-17473-0_17
Download citation
DOI: https://doi.org/10.1007/978-3-319-17473-0_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-17472-3
Online ISBN: 978-3-319-17473-0
eBook Packages: Computer ScienceComputer Science (R0)