ZPL (3293/zpl001)

logo

Scientific parallel array processing language 


for Z-Level Programming Language

Array programming language with natural internal parallel processing capablities, created as a subset of A-ZPL. Lin (1993) describes it as the parallel-implicit compent of the Orca languages

The design goals were (Lin 1993):
  • Allow users to program at a high level, namely, by using arrays.
  • Provide an extremely efficient language. The use of high level abstractions can supply information to optimizing compilers that lower level languages cannot. For example, communication is only induced by operators such as scan and "at." It is not possible to generate irregular communication.
  • Provide a clean language with only a few central concepts. This, too, is intended to help both the ZPL compiler writer and the applications programmer by reducing feature interaction. There are no explicitly parallel constructs.
  • Provide support for boundary conditions since they are the most tedious aspect of data parallel computing.
  • Provide freedom to the MIMD aspects of Orca. Although ZPL can be viewed as a stand­alone language, ZPL must also fit in the framework of the Orca languages where programmers will write their own MIMD phases. This integration is possible because ZPL makes few assumptions regarding parallelism.


    Related languages
    A-ZPL => ZPL   Subset

    References:
  • Lin, Calvin and Snyder, Lawrence "ZPL: An Array Sublanguage" pp. 96-114, 1993. view details 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.
          in D. Gelernter, A. Nicolau, and D. Padua, eds "Languages and Compilers for Parallel Computing" MIT Press 1990, view details
  • Calvin Lin. ZPL Language Reference Manual (DRAFT), Technical Report UW-CSE-TR 94-10-06, University of Washington, May, 1996. (Revised October, 1996) view details
          in D. Gelernter, A. Nicolau, and D. Padua, eds "Languages and Compilers for Parallel Computing" MIT Press 1990, view details
  • Snyder, Lawrence "A programmers guide to ZPL" Technical report, University of Washington, Seattle, WA, May 1997. view details
          in D. Gelernter, A. Nicolau, and D. Padua, eds "Languages and Compilers for Parallel Computing" MIT Press 1990, view details
  • Snyder, Lawrence "A programmer's guide to ZPL" Cambridge, Mass., MIT Press. view details
          in D. Gelernter, A. Nicolau, and D. Padua, eds "Languages and Compilers for Parallel Computing" MIT Press 1990, view details
  • Demetrio Rey, Joss Stubblefield, James Canning "Porting the parallel array programming language ZPL to an embedded multicomputing system" pp168-175 view details Abstract: This paper describes the port of the ZPL parallel array language to the Mercury-RACE, a multicomputing system designed for embedded real-time applications. We discuss the design of the language runtime system and our strategy on mapping ZPL operators to hardware communication. We also show performance results of the ZPL parallel matrix inverse algorithm on the target architecture.
          in [APL02] Proceedings of the 2002 conference on APL: array processing languages: lore, problems, and applications view details
  • Library of Congress Subject Headings Z27 view details
          in [APL02] Proceedings of the 2002 conference on APL: array processing languages: lore, problems, and applications view details
    Resources
    • ZPL project at University of Washington
      ZPL
      A Portable, High Performance
      Parallel Programming Language for
      Science and Engineering Computations


      --------------------------------------------------------------------------------

      ZPL is an array programming language designed from first principles for fast execution on both sequential and parallel computers. It provides a convenient high-level programming medium for supercomputers and large-scale clusters with efficiency comparable to hand-coded message passing. It is the perfect alternative to using a sequential language like C or Fortran and a message passing library like MPI. So...are you tired of MPI?


      More than any other parallel programming facility, ZPL is appropriate for non-parallel jobs as well. It's high-level array-based syntax make it ideal for many scientific and engineering computations. Programmers with scientific computing experience can generally learn ZPL in a few hours. Those who have used MATLAB or Fortran 90 may already be acquainted with array programming style.
      external link
    • logo