Skip to main content

Deriving Parallel Codes via Invariants

  • Conference paper
Static Analysis (SAS 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1824))

Included in the following conference series:

Abstract

Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes tend to be narrower in scope, as the properties which enable parallelism are difficult to capture via ad-hoc schemes. In [CTH98], a systematic approach to parallelization based on the notion of preserving the context of recursive sub-terms has been proposed. This approach can be used to derive a class of divide-and-conquer algorithms. In this paper, we enhance the methodology by using invariants to guide the parallelization process. The enhancement enables the parallelization of a class of recursive functions with conditional and tupled constructs, which were not possible previously. We further show how such invariants can be discovered and verified systematically, and demonstrate the power of our methodology by deriving a parallel code for maximum segment product. To the best of our knowledge, this is the first systematic parallelization for the maximum segment product problem.

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. Blelloch, G.E., Chatterjee, S., Hardwick, J.C., Sipelstein, J., Zagha, M.: Implementation of a portable nested data-parallel language. In: 4th Principles and Practice of Parallel Programming, San Diego, California, pp. 102–111. ACM Press, New York (May 1993)

    Google Scholar 

  2. Bentley, J.: Programming Pearls. Addison-Wesley, Reading (1986)

    Google Scholar 

  3. Blelloch, G.E.: Vector Models for Data Parallel Computing. MIT Press, Cambridge (1990)

    Google Scholar 

  4. Bundy, A., van Harmelen, F., Smaill, A., Ireland, A.: A heuristic for guiding inductive proofs. Artificial Intelligence 62, 185–253 (1993)

    Article  MATH  MathSciNet  Google Scholar 

  5. Chin, W.N., Darlington, J., Guo, Y.: Parallelizing conditional recurrences. In: Fraigniaud, P., Mignotte, A., Bougé, L., Robert, Y. (eds.) Euro-Par 1996. LNCS, vol. 1123, Springer, Heidelberg (1996)

    Google Scholar 

  6. Chin, W.-N.: Safe fusion of functional expressions. In: 7th ACM LISP and Functional Programming Conference, San Francisco, California, pp. 11–20. ACM Press, New York (June 1992)

    Chapter  Google Scholar 

  7. Chin, W.-N.: Synthesizing parallel lemma. In: Proc of a JSPS Seminar on Parallel Programming Systems, pp. 201–217. World Scientific Publishing, Tokyo (1992)

    Google Scholar 

  8. Chin, W.-N.: Towards an automated tupling strategy. In: ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, Copenhagen, Denmark, pp. 119–132. ACM Press, New York (June 1993)

    Google Scholar 

  9. Chin, W.N., Takano, A., Hu, Z.: Parallelization via context preservation. In: IEEE Intl Conference on Computer Languages, Chicago, U.S.A, IEEE CS Press, Los Alamitos (May 1998)

    Google Scholar 

  10. Fischer, A.L., Ghuloum, A.M.: Parallelizing complex scans and reductions. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, Orlando, Florida, pp. 135–136. ACM Press, New York (1994)

    Google Scholar 

  11. Frühwirth, T.: Theory and practice of constraint handling rules. Journal of Logic Programming 37(1–3), 95–138 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  12. Grant-Duff, Z.N., Harrison, P.: Parallelism via homomorphism. Parallel Processing Letters 6(2), 279–295 (1996)

    Article  MathSciNet  Google Scholar 

  13. Ghuloum, A.M., Fischer, A.L.: Flattening and parallelizing irregular applications, recurrent loop nests. In: 3rd ACM Principles and Practice of Parallel Programming, Santa Barbara, California, pp. 58–67. ACM Press, New York (1995)

    Google Scholar 

  14. Hu, Z., Iwasaki, H., Takeichi, M.: Deriving structural hylomorphisms from recursive definitions. In: ACM SIGPLAN International Conference on Functional Programming, Philadelphia, Pennsylvannia, pp. 73–82. ACM Press, New York (1996)

    Chapter  Google Scholar 

  15. Hu, Z., Iwasaki, H., Takeichi, M., Takano, A.: Tupling calculation eliminates multiple traversals. In: 2nd ACM SIGPLAN International Conference on Functional Programming, Amsterdam, Netherlands, pp. 164–175. ACM Press, New York (1997)

    Chapter  Google Scholar 

  16. Hu, Z., Takeichi, M., Chin, W.N.: Parallelization in calculational forms. In: 25th Annual ACM Symposium on Principles of Programming Languages, San Diego, California, pp. 316–328. ACM Press, New York (1998)

    Google Scholar 

  17. Pinter, SS., Pinter, RR.: Program optimization and parallelization using idioms. In: ACM Principles of Programming Languages, Orlando, Florida, pp. 79–92. ACM Press, New York (1991)

    Google Scholar 

  18. Pugh, W.: The omega test: A fast practical integer programming algorithm for dependence analysis. Communications of ACM 8, 102–114 (1992)

    Article  Google Scholar 

  19. Roe, P.: Parallel Programming using Functional Languages (Report CSC 91/R3). PhD thesis, University of Glasgow (1991)

    Google Scholar 

  20. Skillicorn, D.: Architecture-independent parallel computation. IEEE Computer 23(12), 38–50 (1990)

    Google Scholar 

  21. H.S. Stone. Parallel tridiagonal equation solvers. ACM Transactions on Mathematical Software, 1(4):287–307, 1975.

    Article  Google Scholar 

  22. Takano, A., Meijer, E.: Shortcut deforestation in calculational form. In: ACM Conference on Functional Programming and Computer Architecture, San Diego, California, pp. 306–313. ACM Press, New York (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chin, WN., Khoo, SC., Hu, Z., Takeichi, M. (2000). Deriving Parallel Codes via Invariants. In: Palsberg, J. (eds) Static Analysis. SAS 2000. Lecture Notes in Computer Science, vol 1824. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45099-3_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45099-3_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67668-3

  • Online ISBN: 978-3-540-45099-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics