Skip to main content

Implementation of Sensitivity Analysis for Automatic Parallelization

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

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

  • 926 Accesses

Abstract

Sensitivity Analysis (SA) is a novel compiler technique that complements, and integrates with, static automatic parallelization analysis for the cases when program behavior is input sensitive. SA can extract all the input dependent, statically unavailable, conditions for which loops can be dynamically parallelized. SA generates a sequence of sufficient conditions which, when evaluated dynamically in order of their complexity, can each validate the dynamic parallel execution of the corresponding loop. While SA’s principles are fairly simple, implementing it in a real compiler and obtaining good experimental results on benchmark codes is a difficult task. In this paper we present some of the most important implementation issues that we had to overcome in order to achieve a fairly successful automatic parallelizer. We present techniques related to validating dependence removing transformations, e.g., privatization or pushback parallelization, and static and dynamic evaluation of complex conditions for loop parallelization. We concern ourselves with multi-version and parallel code generation as well as the use of speculative parallelization when other, less costly options fail. We present a summary table of the contributions of our techniques to the successful parallelization of 22 industry benchmark codes. We also report speedups and parallel coverage of these codes on two multicore based systems and compare them to results obtained by the Ifort compiler.

This research supported in part by NSF Grants EIA-0103742, ACR-0081510, ACR-0113971, CCR-0113974, ACI-0326350, CRI-0551685, CCF-0702765, CNS-0615267, by the DOE, IBM, and Intel. This research used resources of the National Energy Research Scientific Computing Center, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DOE-AC02-05CH11231.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Agrawal, G., Saltz, J.H., Das, R.: Interprocedural partial redundancy elimination and its application to distributed memory compilation. In: SIGPLAN Conf. on Programming Language Design and Implementation (1995)

    Google Scholar 

  2. Hoeflinger, J.: Interprocedural Parallelization Using Memory Classification Analysis. Ph.D thesis, University of Illinois, Urbana-Champaign (August 1998)

    Google Scholar 

  3. Kai Chen, D., Torrellas, J., Yew, P.-C.: An Efficient Algorithm for the Run-time Parallelization of DOACROSS Loops. In: Proc. for Supercomputing 1994, Washington D.C (November 1994)

    Google Scholar 

  4. Leung, S., Zahorjan, J.: Improving the performance of runtime parallelization. In: Proc. of the 4-thACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (May 1993)

    Google Scholar 

  5. Moon, S., Hall, M.W.: Evaluation of predicated array data-flow analysis for automatic parallelization. In: Proc. of the 7-th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, New York, NY, USA (1999)

    Google Scholar 

  6. Moon, S., Hall, M.W., Murphy, B.R.: Predicated array data-flow analysis for run-time parallelization. In: Proc. of the 12th Int. Conf. on Supercomputing, Melbourne, Australia (July 1998)

    Google Scholar 

  7. Patel, D., Rauchwerger, L.: Principles of speculative run–time parallelization. In: Proc. 11th Annual Workshop on Programming Languages and Compilers for Parallel Computing (August 1998)

    Google Scholar 

  8. Pugh, W.: The Omega test: A fast and practical integer programming algorithm for dependence analysis. In: Supercomputing 1991, Albuquerque, N.M (November 1991)

    Google Scholar 

  9. Pugh, W., Wonnacott, D.: Nonlinear array dependence analysis. In: Proc. of the 3-rd Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers. Kluwer, Dordrecht (1995)

    Google Scholar 

  10. Quiñones, C.G., Madriles, C., Sánchez, J., Marcuello, P., González, A., Tullsen, D.M.: Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices. In: Proc. of ACM SIGPLAN Conf. on Programming Language Design and Implementation, New York, NY, USA (2005)

    Google Scholar 

  11. Rauchwerger, L., Padua, D.A.: The LRPD Test: Speculative Run-Time Parallelization of Loops with Privatization and Reduction Parallelization. In: Proc. of the SIGPLAN 1995 Conf. on Programming Language Design and Implementation, La Jolla, CA (June 1995)

    Google Scholar 

  12. Rus, S., Hoeflinger, J., Rauchwerger, L.: Hybrid analysis: static & dynamic memory reference analysis. Int. J. of Parallel Programming 31(3), 251–283 (2003)

    Article  MATH  Google Scholar 

  13. Rus, S., Pennings, M., Rauchwerger, L.: Sensitivity analysis for automatic parallelization on multi-cores. In: Proc. of the ACM Int. Conf. on Supercomputing, Seattle, WA (2007)

    Google Scholar 

  14. Rus, S., Zhang, D., Rauchwerger, L.: The value evolution graph and its use in memory reference analysis. In: Proc. of the 13th Int. Conf. on Parallel Architectures and Compilation Techniques, Antibes Juan-les-Pins, France (October 2004)

    Google Scholar 

  15. Saltz, J.H., Mirchandaney, R., Crowley, K.: Run-time parallelization and scheduling of loops. IEEE Transactions on Computers 40(5), 603–612 (1991)

    Article  Google Scholar 

  16. Wolfe, M.J.: High Performance Compilers for Parallel Computing. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)

    MATH  Google Scholar 

  17. Yu, H., Rauchwerger, L.: Run-time parallelization overhead reduction techniques. In: Proc. of the 9th Int. Conf. on Compiler Construction, Berlin, Germany, March 2000. LNCS. Springer, Heidelberg (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Rus, S., Pennings, M., Rauchwerger, L. (2008). Implementation of Sensitivity Analysis for Automatic Parallelization. In: Amaral, J.N. (eds) Languages and Compilers for Parallel Computing. LCPC 2008. Lecture Notes in Computer Science, vol 5335. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89740-8_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89740-8_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89739-2

  • Online ISBN: 978-3-540-89740-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics