Skip to main content

Advertisement

Log in

An array language for data parallelism: Definition, compilation, and applications

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The programming of SIMD machines that strongly support data parallelism, such as the Connection Machine, 1 presents new challenges for language, compiler, and algorithm designers. We propose an array language that captures many of the abstractions that are necessary for the effective programming of such machines, thereby liberating the user from having to specify low-level details. Consequently, this new language, ALP, allows for efficient compilation using state-of-the-art techniques, achieving hand-code quality. We demonstrate the effectiveness of our approach by two examples which show that despite being an array language, ALP does not restrict expressiveness to rigidly regular computational structures.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Aho, A.V., Sethi, R., and Ullman, J.D. 1986. Compilers-Principles, Techniques, and Tools. Addison-Wesley, Reading, Mass.

    Google Scholar 

  • Babb II, R.G., ed. 1988. Programming Parallel Processors. Addison-Wesley, Reading, Mass.

    Google Scholar 

  • Bertsekas, D.P., and Tsitsiklis, J.N. 1989. Parallel and Distributed Computation. Prentice-Hall, Englewood Cliffs, N.J.

    Google Scholar 

  • Blelloch, G.E. 1989. Scans as primitive parallel operations. IEEE Trans. Comps., C-38, 11 (Nov.), 1526–1539.

    Google Scholar 

  • Callahan, D., and Kennedy, K. 1988. Compiling programs for distributed-memory multiprocessors. The J. Supercomputing, 2, 2 (Oct.), 151–169.

    Google Scholar 

  • Dietz, H., and Klappholz, D. 1985. Refined C: A sequential language for parallel programming. In Internat. Conf. on Parallel Processing (Aug.)

  • Gehani, N.H., and Roome, W.D. 1986. Concurrent C. Software Practice and Experience, 16, 9 (Sept.), 821–844.

    Google Scholar 

  • Hillis, W.D. 1985. The Connection Machine, MIT Press, Cambridge, Mass.

    Google Scholar 

  • Iverson, K. 1962. A Programming Language. John Wiley, N.Y.

    Google Scholar 

  • Klappholz, D., Kallis, A., and Kong, X. 1989. Refined C: An update. In Second Workshop on Languages and Compilers for Parallel Processing (Aug.).

  • Koelbel, C., Mehrotra, P., and Van Rosendale, J. 1990. Supporting shared data structures on distributed memory architectures. In Second ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (Mar.), pp. 177–186.

  • Ladner, R.E., and Fischer, M.J. 1980. Parallel prefix computation. JACM, 27, 4 (Oct.), 831–838.

    Google Scholar 

  • Lindenmayer, A. 1968. Mathematical models for cellular interaction in development, parts I and II. J. Theoretical Biology, 18: 280–315.

    Google Scholar 

  • Metcalf, M., and Reid, J. 1987. Fortran 8X Explained. Oxford Science Pub.

    Google Scholar 

  • Pinter, R.Y., and Pinter, S.S. 1989. Efficient breadth-first expansion on the Connection Machine, or: Parallel processing of L-systems. Tech. rept. YALEU/DCS/TR-719, Dept. of Comp. Sci., Yale Univ. (July).

  • Prusinkiewicz, P.W. 1986. Graphical applications of L-systems. In Graphics Interface '86–Vision Interface '86 (May), pp. 247–253.

  • Sabot, G.W. 1988a. Paralation Lisp Reference Manual. Tech. rept. PL87-11, Thinking Machines Corp.

  • Sabot, G.W. 1988b. The Paralation Model: Architecture Independent Parallel Programming. MIT Press, Cambridge, Mass.

    Google Scholar 

  • Steele, G.L. 1984. Common LISP: The Language. Digital Press.

  • Thinking Machines. 1987. Connection Machine Model CM-2 Technical Summary. Tech rept. HA87-4, Thinking Machines Corp.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Work supported in part by ONR grant number N00014-89-J-1906 while on sabbatical leave at the Department of Computer Science, Yale University.

Work supported in part by NSF grant number DCR-8405478 while on sabbatical leave at the Department of Computer Science, Yale University.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ortiz, L.F., Pinter, R.Y. & Pinter, S.S. An array language for data parallelism: Definition, compilation, and applications. J Supercomput 5, 7–29 (1991). https://doi.org/10.1007/BF00155855

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00155855

Keywords