Skip to main content

Static Analysis of Dynamic Schedules and Its Application to Optimization of Parallel Programs

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2010)

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

Abstract

Effective optimizations for concurrent programs require the compiler to have detailed knowledge about the scheduling of parallel tasks at runtime. Currently, optimizations for parallel programs must define their own models and analyses of the parallel constructs used in the source programs. This makes developing new optimizations more difficult and complicates their integration into a single optimizing compiler.

We investigate an approach that separates the static analysis of the dynamic runtime schedule from subsequent optimizations. We present three optimizations that are based on the information gathered during the schedule analysis. Variants of those optimizations have been described in the literature before but each work is built upon its own highly specialized analysis. In contrast, our independent schedule analysis shows synergistic effects where previously incompatible optimizations can now share parts of their implementation and all be applied to the same program.

Supported, in part, by the Swiss National Science Foundation grant 200021_120285.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agarwal, S., Barik, R., Sarkar, V., Shyamasundar, R.K.: May-happen-in-parallel Analysis of X10 Programs. In: PPoPP (2007)

    Google Scholar 

  2. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. Ph.D thesis, DIKU, University of Copenhagen (1994)

    Google Scholar 

  3. Angerer, C.M., Gross, T.R.: Parallel Continuation-Passing Style. In: PESPMA (2010)

    Google Scholar 

  4. Barik, R.: Efficient computation of may-happen-in-parallel information for concurrent java programs. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds.) LCPC 2005. LNCS, vol. 4339, pp. 152–169. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  5. Hind, M.: Pointer Analysis: Haven’t We Solved This Problem Yet? In: PASTE (2001)

    Google Scholar 

  6. Hindman, B., Grossman, D.: Strong atomicity for Java without virtual-machine support. Tech. Rep. UW-CSE- 06-05-01 (May 2006)

    Google Scholar 

  7. Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM 21(7) (1978)

    Google Scholar 

  8. Manson, J., Pugh, W., Adve, S.V.: The Java Memory Model. In: POPL (2005)

    Google Scholar 

  9. Matsakis, N., Gross, T.: Programming with intervals. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds.) LCPC 2009. LNCS, vol. 5898, pp. 203–217. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  10. Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, San Francisco (1997)

    Google Scholar 

  11. Nanda, M.G., Ramesh, S.: Pointer Analysis of Multithreaded Java Programs. In: Matsui, M., Zuccherato, R.J. (eds.) SAC 2003. LNCS, vol. 3006, Springer, Heidelberg (2004)

    Google Scholar 

  12. Naumovich, G., Avrunin, G., Clarke, L.: An Efficient Algorithm for Computing MHP Information for Concurrent Java Programs. In: ESEC/FSE-7 (1999)

    Google Scholar 

  13. Ruf, E.: Effective Synchronization Removal for Java. In: PLDI (2000)

    Google Scholar 

  14. Rugina, R., Rinard, M.: Pointer Analysis for Structured Parallel Programs. In: TOPLAS (2003)

    Google Scholar 

  15. Salcianu, A., Rinard, M.: Pointer and Escape Analysis for Multithreaded Programs. In: PPoPP (2001)

    Google Scholar 

  16. Shpeisman, T., et al.: Enforcing Isolation and Ordering in STM. In: PLDI (2007)

    Google Scholar 

  17. Steensgaard, B.: Points-to Analysis in Almost Linear Time. In: POPL (1996)

    Google Scholar 

  18. Whaley, J., Lam, M.S.: Cloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams. In: PLDI (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Angerer, C.M., Gross, T.R. (2011). Static Analysis of Dynamic Schedules and Its Application to Optimization of Parallel Programs. In: Cooper, K., Mellor-Crummey, J., Sarkar, V. (eds) Languages and Compilers for Parallel Computing. LCPC 2010. Lecture Notes in Computer Science, vol 6548. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19595-2_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-19595-2_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-19594-5

  • Online ISBN: 978-3-642-19595-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics