Skip to main content

The data parallel programming model: A semantic perspective

  • Chapter
  • First Online:

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

Abstract

We provide a short introduction to the data parallel programming model. We argue that parallel computing often makes little distinction between the execution model and the programming model. This results in poor programming and low portability. Using the “GOTO considered harmful” analogy, we show that data parallelism can be seen as a way out of this difficulty. We show that important aspects of the data parallel model were already present in earlier approaches to parallel programming, and demonstrate that the data parallel programming model can be characterized by a small number of concepts with simple semantics.

This work has been partly supported by the French CNRS Coordinated Research Program on Parallelism C3/PRS and Department of Defense DRET Contract 91/1180. Luc Bougé is a member of the INRIA Project ReMaP.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. C. Bareau, B. Caillaud, C. Jard, and R. Thoraval. Correctness of automated distribution of sequential programs. In Parallel Architectures and Languages Europe (PARLE'93), number 694 in Lecture Notes in Computer Science, pages 517–528, 1993.

    Google Scholar 

  2. L. Bougé, D. Cachera, Y. Le Guyadec, G. Utard, and B. Virot. Formal Validation of Data Parallel Programs: Introducing the Assertional Approach. In A. Darte and G.-R. Perrin, editors, Infra, Lecture Notes in Computer Science, chapter 12. Springer Verlag, 1996.

    Google Scholar 

  3. L. Bougé and J.-L. Levaire. Control structures for data-parallel SIMD languages: semantics and implementation. Future Generation Computer Systems, 8(3/4):363–378, 1992.

    Google Scholar 

  4. T. Blank. The MasPar MP-1 architecture. In Proc. of the 35th IEEE Computer Society Int. Conf., Spring COMPCON'90, pages 20–24, San Francisco, 1990.

    Google Scholar 

  5. G.E. Blelloch. Vector models for data-parallel computing. MIT Press, Cambridge, 1990.

    Google Scholar 

  6. L. Bougé. On the semantics of languages for massively parallel SIMD architectures (extended abstract). In Proc. Parallel Arch. and Lang. Europe Conf., PARLE'91, number 506 in Lecture Notes in Computer Science, pages 166–183, Eindhoven, 1991. Springer Verlag.

    Google Scholar 

  7. N. Carreiro and D. Gelertner. Linda in context. Communications of the ACM, 32(4):323–357, 1989.

    Google Scholar 

  8. D. Callahan and K. Kennedy. Compiling programs for distributed-memory multiprocessors. Journal of SuperComputing, 2:151–169, 1988.

    Google Scholar 

  9. E.W.G. Dijkstra. GO TO statement considered harmful. Communications of the ACM, 11:147–148, 1968.

    Google Scholar 

  10. Tz. Elrad and N. Francez. Decomposition of distributed programs into communication-closed layers. Science of Computer Programming, 2:155–173, 1982.

    Google Scholar 

  11. R. Esser and R. Knecht. Intel Paragon XP/S — architecture and software environment. Technical Report KFA-ZAM-IB-9305, Central Institute for Mathemantics, Research Center Juelich, 1993.

    Google Scholar 

  12. P. Feautrier. Asymptotically efficient algorithms for parallel architectures. In Decentralized Systems, pages 273–284. IFIP Working Group 10.3, North-Holland, 1989.

    Google Scholar 

  13. Paul Feautrier. Automatic Parallelization in the Polytope Model. In A. Darte and G.-R. Perrin, editors, Infra, Lecture Notes in Computer Science, chapter 4. Springer Verlag, 1996.

    Google Scholar 

  14. M.J. Flynn. Some computer organizations and their effectiveness. IEEE Trans. on Computers, C-21(9):948–960, 1972.

    Google Scholar 

  15. High Performance Fortran Forum. High Performance Fortran language specification (draft version). CITI/CRPC, Rice Univ., Houston, January 1993. Version 1.0 Draft.

    Google Scholar 

  16. Ian Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995.

    Google Scholar 

  17. Ian Foster. Task Parallelism and High-Performance Languages. In A. Darte and G.-R. Perrin, editors, Infra, Lecture Notes in Computer Science, chapter 9. Springer Verlag, 1996.

    Google Scholar 

  18. C.A.R. Hoare. Communicating sequential processes. Communications of the ACM, 21:666–677, 1978.

    Google Scholar 

  19. Ph.J. Hatcher and M. Quinn. DataParallel C: Compiling DataParallel Languages on MIMD architectures. MIT Press, 1992.

    Google Scholar 

  20. W.D. Hillis and G.L. Steele, Jr. Data-parallel algorithms. Communications of the ACM, 29(12):1170–1183, 1986.

    Google Scholar 

  21. Intel Corporation, Beaverton, OR. Paragon XP/S Product Overview, 1991.

    Google Scholar 

  22. K.E. Iverson. A programming langage. Wiley, New-York, 1962.

    Google Scholar 

  23. R. Keryell, Ph. Matherat, and N. Paris. POMP, or how to design a massively parallel machine with small developments. In Proc. Conf. on Parallel Arch. and Lang. Europe, PARLE'91, number 505 in Lecture Notes in Computer Science, Eindhoven, 1991. Springer Verlag.

    Google Scholar 

  24. Bjørn Lisper. Data Parallelism and Functional Programming. In A. Darte and G.-R. Perrin, editors, Infra, Lecture Notes in Computer Science, chapter 11. Springer Verlag, 1996.

    Google Scholar 

  25. MasPar Computer Corporation, Sunnyvale, CA. Maspar Parallel Application Language Reference Manual, 1990.

    Google Scholar 

  26. MasPar Computer Corporation, Sunnyvale, CA. MP-Fortran Reference Manual, 1990.

    Google Scholar 

  27. N. Paris. Définition de POMPC (version 1.99). Technical Report 92–5, LIENS, Paris, 1992. English version in preparation.

    Google Scholar 

  28. R.H. Perrot. A language for array and vector processors. ACM Trans. on Progr. Lang. and Syst., 1(2):177–195, 1979.

    Google Scholar 

  29. G.L. Steele, Jr. and W.D. Hillis. Connection machine lisp: Fine-grain parallel symbolic processing. In Proc. 1986 ACM Conf. on Lisp and Funct. Progr., pages 279–297, Cambridge, Mass., 1986.

    Google Scholar 

  30. ThinkingMachine Corporation, Cambridge MA. C * Programming Guide, 1990.

    Google Scholar 

  31. Thinking Machine Corporation, Cambridge, MA. CM-FORTRAN Programming Guide, 1990.

    Google Scholar 

  32. Thinking Machine Corporation, Cambridge, MA. CM-2 Technical Summary, 1991.

    Google Scholar 

  33. Thinking Machine Corporation, Cambridge, MA, CM-5 Technical Summary, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Guy-René Perrin Alain Darte

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Bougé, L. (1996). The data parallel programming model: A semantic perspective. In: Perrin, GR., Darte, A. (eds) The Data Parallel Programming Model. Lecture Notes in Computer Science, vol 1132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61736-1_40

Download citation

  • DOI: https://doi.org/10.1007/3-540-61736-1_40

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61736-5

  • Online ISBN: 978-3-540-70646-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics