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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Agarwal, S., Barik, R., Sarkar, V., Shyamasundar, R.K.: May-happen-in-parallel Analysis of X10 Programs. In: PPoPP (2007)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. Ph.D thesis, DIKU, University of Copenhagen (1994)
Angerer, C.M., Gross, T.R.: Parallel Continuation-Passing Style. In: PESPMA (2010)
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)
Hind, M.: Pointer Analysis: Haven’t We Solved This Problem Yet? In: PASTE (2001)
Hindman, B., Grossman, D.: Strong atomicity for Java without virtual-machine support. Tech. Rep. UW-CSE- 06-05-01 (May 2006)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACMÂ 21(7) (1978)
Manson, J., Pugh, W., Adve, S.V.: The Java Memory Model. In: POPL (2005)
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)
Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, San Francisco (1997)
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)
Naumovich, G., Avrunin, G., Clarke, L.: An Efficient Algorithm for Computing MHP Information for Concurrent Java Programs. In: ESEC/FSE-7 (1999)
Ruf, E.: Effective Synchronization Removal for Java. In: PLDI (2000)
Rugina, R., Rinard, M.: Pointer Analysis for Structured Parallel Programs. In: TOPLAS (2003)
Salcianu, A., Rinard, M.: Pointer and Escape Analysis for Multithreaded Programs. In: PPoPP (2001)
Shpeisman, T., et al.: Enforcing Isolation and Ordering in STM. In: PLDI (2007)
Steensgaard, B.: Points-to Analysis in Almost Linear Time. In: POPL (1996)
Whaley, J., Lam, M.S.: Cloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams. In: PLDI (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)