Skip to main content

ZPL: An array sublanguage

  • Conference paper
  • First Online:
Book cover Languages and Compilers for Parallel Computing (LCPC 1993)

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

Abstract

The notion of isolating the “common case” is a well known computer science principle. This paper describes ZPL, a language that treats data parallelism as a common case of MIMD parallelism. This separation of concerns has many benefits. It allows us to define a clean and concise language for describing data parallel computations, and this in turn leads to efficient parallel execution. Our particular language also provides mechanisms for handling boundary conditions. We introduce the concepts, constructs and semantics of our new language, and give a simple example that contrasts ZPL with other data parallel languages.

This research was supported in part by ONR Grant N00014-89-J-1368, ARPA Grant N00014-92-J-1824 and NSF Grant CDA-9211095

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.

References

  1. Jeanne C. Adams, Walter S. Brainerd, Jeanne T. Martin, Brian T. Smith, and Jerrold L. Wagener. Fortran 90 Handbook. McGraw-Hill, New York, NY, 1992.

    Google Scholar 

  2. Gail Alverson, William Griswold, David Notkin, and Lawrence Snyder. A flexible communication abstraction for nonshared memory parallel computing. In Proceedings of Supercomputing '90, November 1990.

    Google Scholar 

  3. Guy E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  4. Guy E. Blelloch. NESL: A nested data-parallel language. Technical Report CMU-CS-92-103, School of Computer Science, Carnegie Mellon University, January 1992.

    Google Scholar 

  5. R. E. Cypher, J. L. C. Sanz, and L. Snyder. Algorithms for image component labeling on simd mesh connected computers. IEEE Transactions on Computers, 39(2):276–281, 1990.

    Article  Google Scholar 

  6. William Griswold, Gail Harrison, David Notkin, and Lawrence Snyder. Scalable abstractions for parallel programming. In Proceedings of the Fifth Distributed Memory Computing Conference, 1990. Charleston, South Carolina.

    Google Scholar 

  7. Philip J. Hatcher, Michael J. Quinn, Ray J. Anderson, Anthony J. Lapadula, Bradley K. Seevers, and Andrew F. Bennett. Architecture-independent scientific programming in Dataparallel C: Three case studies. In Proceedings of Supercomputing '91, pages 208–217, 1991.

    Google Scholar 

  8. High Performance Fortran Forum. High Performance Fortran Specification. January 1993.

    Google Scholar 

  9. Richard E. Ladner and Michael J. Fischer. Parallel prefix computation. Journal of the Association for Computing Machinery, 27(4):831–838, October 1980.

    Google Scholar 

  10. Jinling Lee. Extending the SIMPLE program in Poker. Technical Report 89-11-07, Department of Computer Science and Engineering, University of Washington, 1989.

    Google Scholar 

  11. Calvin Lin and Lawrence Snyder. A portable implementation of SIMPLE. International Journal of Parallel Programming, 20(5):363–401, 1991.

    Article  Google Scholar 

  12. Calvin Lin and Lawrence Snyder. Data ensembles in Orca C. In 5th Workshop on Languages and Compilers for Parallel Computing, New Haven, CT, August 1992.

    Google Scholar 

  13. Constantine Polychronopolous, Milind Girkar, Mohammad Reza Haghighat, Chia Ling Lee, Bruce Leung, and Dale Schouten. Parafrase-2: An environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors. In Proceedings of the International Conference on Parallel Processing, volume 2, pages 39–48, August 1989.

    Google Scholar 

  14. C. D. Polychronopoulos, M. B. Girkar, M. R. Haghighat, C. L. Lee, B. P. Leung, and D. A. Schouten. The structure of parafrase-2: an advanced parallelizing compiler for c and fortran. In Workshop on Languages and Compilers for Parallel Computing, pages 423–453.

    Google Scholar 

  15. J.R. Rose and Guy L. Steele Jr. C*: An extended C language for data parallel programming. Technical Report PL 87-5, Thinking Machines Corporation, 1987.

    Google Scholar 

  16. M. Rosing, R. Schnabel, and R. Weaver. The Dino parallel programming language. Technical Report CU-CS-457-90, Dept. of Computer Science, University of Colorado, April 1990.

    Google Scholar 

  17. Lawrence Snyder. The XYZ abstraction levels of Poker-like languages. In David Gelernter, Alexandru Nicolau, and David Padua, editors, Languages and Compilers for Parallel Computing, pages 470–489. MIT Press, 1990.

    Google Scholar 

  18. Lawrence Snyder. Foundations of practical parallel programming languages. In Proceedings of the Second International Conference of the Austrian Center for Parallel Computation. Springer-Verlag, 1993.

    Google Scholar 

  19. David Grimes Socha. Supporting Fine-Grain Computation on Distributed Memory Parallel Computers. PhD thesis, University of Washington, Department of Computer Science and Engineering, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lin, C., Snyder, L. (1994). ZPL: An array sublanguage. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1993. Lecture Notes in Computer Science, vol 768. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57659-2_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-57659-2_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57659-4

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics