Skip to main content

\(\pi \) Abstraction: Parallelism-Aware Array Data Flow Analysis for OpenMP

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8967))

  • 875 Accesses

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. NAS Parallel Benchmarks 3.3. http://www.nas.nasa.gov/publications/npb.html

  2. OpenMP Application Programming Interface 4.0. http://openmp.org

  3. 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)

    Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. Butenhof, D.R.: Programming with POSIX Threads. Addison-Wesley Longman Publishing Co. Inc., Boston (1997)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. Havlak, P., Kennedy, K.: An implementation of interprocedural bounded regular section analysis. IEEE Trans. Parallel Distrib. Syst. 2(3), 350–360 (1991)

    Article  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. 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)

    Google Scholar 

  13. NAS Parallel Benchmarks version 3.3. http://www.nas.nasa.gov/publications/npb.html

  14. Satoh, S., Kusano, K., Sato, M.: Compiler optimization techniques for OpenMP programs. Sci. Program. 9(203), 131–142 (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Samuel Midkiff .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics