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
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
Guy E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, Cambridge, MA, 1990.
Guy E. Blelloch. NESL: A nested data-parallel language. Technical Report CMU-CS-92-103, School of Computer Science, Carnegie Mellon University, January 1992.
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.
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.
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.
High Performance Fortran Forum. High Performance Fortran Specification. January 1993.
Richard E. Ladner and Michael J. Fischer. Parallel prefix computation. Journal of the Association for Computing Machinery, 27(4):831–838, October 1980.
Jinling Lee. Extending the SIMPLE program in Poker. Technical Report 89-11-07, Department of Computer Science and Engineering, University of Washington, 1989.
Calvin Lin and Lawrence Snyder. A portable implementation of SIMPLE. International Journal of Parallel Programming, 20(5):363–401, 1991.
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.
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.
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.
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.
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.
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.
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.
David Grimes Socha. Supporting Fine-Grain Computation on Distributed Memory Parallel Computers. PhD thesis, University of Washington, Department of Computer Science and Engineering, 1991.
Author information
Authors and Affiliations
Editor information
Rights 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