Skip to main content

Symbolic Array Data Flow Analysis and Pattern Recognition in Numerical Codes

  • Conference paper
Programming Environments for Massively Parallel Distributed Systems

Part of the book series: Monte Verità ((MV))

Abstract

The PARAMAT approach to fully automatic distributed-memory parallelization consists of three basic ideas: First, we observe that we can cover large parts of many numerical codes by a small set of typical programming patterns. Second, we give a fast and powerful pattern recognition algorithm which tries to locally recover the semantics of the program while being robust against many common code modifications like loop distribution, loop interchange, loop blocking or loop unrolling. Third, we use the restored program semantics information to guide data partitioning, run time prediction and sophisticated optimizing code transformations including algorithm replacement.

In this paper we focus on the symbolic array dataflow analysis techniques of PARAMAT’s pattern recognition tool. We introduce a compact symbolic access descriptor and use it to compute array data flow that guides the recognition process. As an example, we show the application of this method to recognize and reroll unrolled loops.

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. V. Balasundaram and K. Kennedy. A technique for summarizing data access and its use in parallelism enhancing transformations. In ACM SIGPLAN Programming Language Design and Implementation, pages 41–53, 1989.

    Google Scholar 

  2. Barbara Chapman, Piyush Mehrotra, and Hans Zima. Programming in Vienna Fortran. Scientific Programming, 1(1):31–50, 1992.

    Google Scholar 

  3. Anne Dierstein, Roman Hayer, and Thomas Rauber. Automatic parallelization for distributed memory multiprocessors. In C. W. Kefiler (Ed.): Automatic Parallelization — New Approaches to Code Generation, Data Distribution and Performance Prediction, pages 192–217. Verlag Vieweg, 1993.

    Google Scholar 

  4. Paul Feautrier. Dataflow Analysis of Array and Scalar References. Int. Journal of Parallel Programming, 20(1):23–53, Feb. 1991.

    Article  MATH  Google Scholar 

  5. Hans Michael Gerndt. Automatic Parallelization for Distributed-Memory Multiprocessing Systems. PhD thesis, Universität Bonn, 1989.

    Google Scholar 

  6. Seema Hiranandani, Ken Kennedy, and Chau-Wen Tseng. Compiler-Support for Machine-Independent Parallel Programming in Fortran-D. Technical Report Rice COMP TR91-149, Rice University, March 1991.

    Google Scholar 

  7. High Performance Fortran Forum HPFF. High Performance Fortran Language Specification, Final Version 1.0, May 1993.

    Google Scholar 

  8. Christoph W. Keßler. Knowledge-Based Automatic Parallelization by Pattern Recognition. In C. W. Keßler (Ed.): Automatic Parallelization — New Approaches to Code Generation, Data Distribution and Performance Prediction, pages 110–135. Verlag Vieweg, 1993.

    Google Scholar 

  9. Christoph W. Keßler. Pattern Recognition Enables Automatic Parallelization of Numerical Codes. In Proc. of the Fourth Int. Workshop on Compilers for Parallel Computers, Delft, NL, Dec. 1993.

    Google Scholar 

  10. Christoph W. Keßler and Wolfgang J. Paul. Automatic Parallelization by Pattern Matching. In Proc. of Second Int. Conference of the Austrian Center for Parallel Computation, pages 166–181, Oct. 1993.

    Google Scholar 

  11. C.W. Keßler, W.J. Paul, and T. Rauber. Scheduling Vector Straight Line Code on Vector Processors. In R. Giegerich and S.L. Graham, editors, Code Generation-Concepts, Tools, Techniques, pages 77–91. Springer Workshops in Computing Series, 1992.

    Google Scholar 

  12. Ulrich Kremer. NP-Completeness of Dynamic Remapping. Technical Report CRPC-TR93330-S, Center for Research on Parallel Computation, Rice University, Houston, TX, Aug. 1993. see also: Proc. Fourth Workshop on Compilers for Parallel Computers, Delft, Dec. 1993.

    Google Scholar 

  13. Jingke Li and Marina Chen. Index Domain Alignment: Minimizing Cost of Cross-referencing between Distributed Arrays. In Third Symposium on the Frontiers of Massively Parallel Computation, pages 424–433, 1990.

    Google Scholar 

  14. Dror E. Maydan, Saman P. Amarasinghe, and Monica S. Lam. Array data-flow analysis and its use in array privatization. In ACM SIGPLAN Principles of Programming Languages, Jan. 1993.

    Google Scholar 

  15. Michael E. Wolf and Monica S. Lam. A Data Locality Optimizing Algorithm. In ACM SIGPLAN Programming Language Design and Implementation, pages 30–44, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer Basel AG

About this paper

Cite this paper

Keßler, C.W. (1994). Symbolic Array Data Flow Analysis and Pattern Recognition in Numerical Codes. In: Decker, K.M., Rehmann, R.M. (eds) Programming Environments for Massively Parallel Distributed Systems. Monte Verità. Birkhäuser, Basel. https://doi.org/10.1007/978-3-0348-8534-8_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-0348-8534-8_6

  • Publisher Name: Birkhäuser, Basel

  • Print ISBN: 978-3-0348-9668-9

  • Online ISBN: 978-3-0348-8534-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics