ZPL is a parallel programming language that was developed at the University of Washington between 1992 and 2005. ZPL was a contemporary of High Performance Fortran (HPF), targeting a similar class of applications by supporting data parallel computations via operations on global-view arrays distributed between a set of distinct processor memories. ZPL distinguished itself from HPF by providing a less ambiguous execution model, support for first-class index sets, and a syntactic performance model that supported the ability to trivially identify and reason about communication.
ZPL was initially developed by Lawrence Snyder and Calvin Lin at the University of Washington who strove to design a parallel programming language from first principles. To this end, the ZPL effort began by identifying abstract machine and programming models that would serve as the parallel equivalents of the von Neumann machine model and the...
- 1.Chamberlain BL (2001) The design and implementation of a region-based parallel language. Ph.D. thesis, University of Washington, Nov 2001. http://www.cs.washington.edu/homes/brad/cv/pubs/degree/thesis.html
- 2.Chamberlain BL, Choi S-E, Deitz SJ, Snyder L (2004) The high-level parallel language ZPL improves productivity and performance. In: Proceedings of the IEEE internationals workshop on productivity and performance in high-end computing, Madrid, 2004Google Scholar
- 3.Chamberlain BL, Choi S-E, Lewis EC, Lin C, Snyder L, Weathersby WD (1998) ZPL’s WYSIWYG performance model. In: Proceedings of the IEEE workshop on high-level parallel programming models and supportive environments, Orlando, 1998Google Scholar
- 4.Chamberlain BL, Choi S-E, Snyder L (1997) A compiler abstraction for machine independent parallel communication generation. In: Proceedings of the workshop on languages and compilers for parallel computing, Minneapolis, 1997Google Scholar
- 5.Chamberlain BL, Deitz SJ, Snyder L (2000) A comparative study of the NAS MG benchmark across parallel languages and architectures. In: Proceedings of the ACM international conference on supercomputing, Santa Fe, 2000Google Scholar
- 6.Chamberlain BL, Lewis EC, Snyder L (1999) Array language support for wavefront and pipelined computations. In: Proceedings of the workshop on languages and compilers for parallel computing, La Jolla, 1999Google Scholar
- 7.Chamberlain BL, Snyder L (2001) Array language support for parallel sparse computation. In: Proceedings of the ACM international conference on supercomputing, Sorrento, 2001Google Scholar
- 8.Choi S-E, Snyder L (1997) Quantifying the effects of communication optimizations. In: Proceedings of the IEEE international conference on parallel processing, Bloomington, 1997Google Scholar
- 9.Deitz SJ (2005) High-level programming language abstractions for advanced and dynamic parallel computations. Ph.D thesis, University of Washington, Feb 2005. http://www.cs.washington.edu/projects/zpl/papers/data/Deitz05Thesis.pdf
- 10.Deitz SJ, Chamberlain BL, Choi S-E, Snyder L (2003) The design and implementation of a parallel array operator for the arbitrary remapping of data. In: Proceedings of the ACM conference on principles and practice of parallel programming, San Diego, 2003Google Scholar
- 11.Deitz SJ, Chamberlain BL, Snyder L (2001) Eliminating redundancies in sum-of-product array computations. In: Proceedings of the ACM international conference on supercomputing, Sorrento, 2001Google Scholar
- 12.Lin C (1992) The portability of parallel programs across MIMD computers. Ph.D. thesis, University of Washington, Department of Computer Science and EngineeringGoogle Scholar
- 14.Snyder L (1999) Programming guide to ZPL. MIT, CambridgeGoogle Scholar
- 15.Snyder L (2007) The design and development of ZPL. In: HOPL III: Proceedings of the third ACM SIGPLAN conference on history of programming languages, San Diego. ACM, New York, pp 8-1–8-37Google Scholar