Skip to main content

Languages for parallel programming

  • Invited Presentations
  • Conference paper
  • First Online:
Parallel Database Systems (PDS 1990)

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

Included in the following conference series:

  • 130 Accesses

Abstract

Many different paradigms for parallel programming exist, nearly each of which is employed in dozens of languages. Several researchers have tried to compare these languages and paradigms by examining the expressivity and flexibility of their constructs. Few attempts have been made, however, at practical studies based on actual programming experience with multiple languages. Such a study is the topic of this paper.

We will look at five parallel languages, all based on different paradigms. The languages are: SR (based on message passing), Emerald (concurrent objects), Parlog (parallel Horn clause logic), Linda (Tuple Space), and Orca (logically shared data). We have implemented the same parallel programs in each language, using real parallel machines. The paper reports on our experiences in implementing three frequently occurring communication patterns: message passing through a mailbox, one-to-many communication, and access to replicated shared data.

This research was supported in part by the Netherlands Organization for Scientific Research (N.W.O.).

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ahuja, S., Carriero, N., and Gelernter, D., “Linda and Friends,” IEEE Computer 19(8), pp.26–34 (Aug. 1986).

    Google Scholar 

  2. Andrews, G.R., “Paradigms for Process Interaction in Distributed Programs,” TR 89-24, University of Arizona, Tucson, AZ (Oct. 1989).

    Google Scholar 

  3. Andrews, G.R. and Olsson, R.A., “The Evolution of the SR Programming Language,” Distributed Computing 1, pp. 133–149 (July 1986).

    Google Scholar 

  4. Andrews, G.R., Olsson, R.A., Coffin, M., Elshoff, I., Nilsen, K., Purdin, T., and Townsend, G., “An Overview of the SR Language and Implementation,” ACM Trans. Program. Lang. Syst. 10(1), pp. 51–86 (Jan. 1988).

    Google Scholar 

  5. Andrews, G.R. and Schneider, F.B., “Concepts and Notations for Concurrent Programming,” ACM Computing Surveys 15(1), pp. 3–43 (March 1983).

    Google Scholar 

  6. Bal, H.E., “An Evaluation of the SR Language Design,” IR-219, Vrije Universiteit, Amsterdam, The Netherlands (August 1990).

    Google Scholar 

  7. Bal, H.E., Programming Distributed Systems, Silicon Press, Summit, NJ (1990).

    Google Scholar 

  8. Bal, H.E., “Heuristic Search in PARLOG using Replicated Worker Style Parallelism,” Research Report, Vrije Universiteit, Amsterdam, The Netherlands (May 1990).

    Google Scholar 

  9. Bal, H.E., “Fault-tolerant Parallel Programming in Argus,” IR-214, Vrije Universiteit, Amsterdam, The Netherlands (May 1990).

    Google Scholar 

  10. Bal, H.E., Kaashoek, M.F., and Tanenbaum, A.S., “A Distributed Implementation of the Shared Data-object Model,” USENIX/SERC Workshop on Experiences with Building Distributed and Multiprocessor Systems, Ft. Lauderdale, FL., pp. 1–19 (Oct. 1989).

    Google Scholar 

  11. Bal, H.E., Kaashoek, M.F., and Tanenbaum, A.S., “Experience with Distributed Programming in Orca,” Proc. IEEE CS 1990 Int. Conf. on Computer Languages, New Orleans, LA, pp. 79–89 (March 1990).

    Google Scholar 

  12. Bal, H.E., Steiner, J.G., and Tanenbaum, A.S., “Programming Languages for Distributed Computing Systems,” ACM Computing Surveys 21(3), pp. 261–322 (Sept. 1989).

    Google Scholar 

  13. Bal, H.E. and Tanenbaum, A.S., “Distributed Programming with Shared Data,” Proc. IEEE CS 1988 Int. Conf. on Computer Languages, Miami, FL, pp. 82–91 (Oct. 1988).

    Google Scholar 

  14. Bjornson, R., Carriero, N., and Gelernter, D., “The Implementation and Performance of Hypercube Linda,” Report RR-690, Yale University, New Haven, CT (March 1989).

    Google Scholar 

  15. Black, A., Hutchinson, N., Jul, E., Levy, H., and Carter, L., “Distribution and Abstract Types in Emerald,” IEEE Trans. Softw. Eng. SE-13(1), pp. 65–76 (Jan. 1987).

    Google Scholar 

  16. Carriero, N., “The Implementation of Tuple Space Machines,” Research Report 567 (Ph.D. dissertation), Yale University, New Haven, CT (Dec. 1987).

    Google Scholar 

  17. Carriero, N. and Gelernter, D., “The S/Net's Linda Kernel,” ACM Trans. Comp. Syst. 4(2), pp. 110–129 (May 1986).

    Google Scholar 

  18. Carriero, N. and Gelernter, D., “How to Write Parallel Programs: A Guide to the Perplexed,” ACM Comp. Surveys 21(3), pp. 323–357 (Sept. 1989).

    Google Scholar 

  19. Carriero, N. and Gelernter, D., “Linda in Context,” Commun. ACM 32(4), pp. 444–458 (April 1989).

    Google Scholar 

  20. Carriero, N., Gelernter, D., and Leichter, J., “Distributed Data Structures in Linda,” Proc. 13th ACM Symp. Princ. Progr. Lang., St. Petersburg, FL, pp. 236–242 (Jan. 1986).

    Google Scholar 

  21. Clark, K.L., “PARLOG and Its Applications,” IEEE Trans. Softw. Eng. SE-14(12), pp. 1792–1804 (Dec. 1988).

    Google Scholar 

  22. Clark, K.L. and Gregory, S., “PARLOG: Parallel Programming in Logic,” ACM Trans. Program. Lang. Syst. 8(1), pp. 1–49 (Jan. 1986).

    Google Scholar 

  23. Conlon, T., Programming in PARLOG, Addison-Wesley, Wokingham, England (1989).

    Google Scholar 

  24. Floyd, R.W., “Algorithm 97: Shortest Path,” Commun. ACM 5, p. 345 (1962).

    Google Scholar 

  25. Gregory, S., Parallel Logic Programming in PARLOG, Addison-Wesley, Wokingham, England (1987).

    Google Scholar 

  26. Jul, E., Levy, H., Hutchinson, N., and Black, A., “Fine-Grained Mobility in the Emerald System,” ACM Trans. Comp. Syst. 6(1), pp. 109–133 (Feb. 1988).

    Google Scholar 

  27. Kaashoek, M.F., Bal, H.E., and Tanenbaum, A.S., “Experience with the Distributed Data Structure Paradigm in Linda,” USENIX Workshop on Experiences with Building Distributed and Multiprocessor S ystems, Ft. Lauderdale, FL., pp. 175–191 (Oct. 1989).

    Google Scholar 

  28. Kaashoek, M.F., Tanenbaum, A.S., Flynn Hummel, S., and Bal, H.E., “An Efficient Reliable Broadcast Protocol,” Operating Systems Review 23(4), pp. 5–20 (Oct. 1989).

    Google Scholar 

  29. Kahn, K. M. and Miller, M.S., “Technical Correspondence on “Linda in Context”,” Comm. ACM 32(10), pp. 1253–1255 (Oct. 1989).

    Google Scholar 

  30. Li, K. and Hudak, P., “Memory Coherence in Shared Virtual Memory Systems,” ACM Trans. Computer Systems 7(4), pp. 321–359 (Nov. 1989).

    Google Scholar 

  31. Liskov, B., “Distributed Programming in Argus,” Commun. ACM 31(3), pp. 300–312 (March 1988).

    Google Scholar 

  32. Mullender, S.J., Rossum, G. van, Tanenbaum, A.S., Renesse, R. van, and Staveren, H. van, “Amoeba: A Distributed Operating System for the 1990s,” IEEE Computer 23(5), pp. 44–53 (May 1990).

    Google Scholar 

  33. Shapiro, E., “Technical Correspondence on “Linda in Context”,” Comm. ACM 32(10), pp. 1244–1249 (Oct. 1989).

    Google Scholar 

  34. Zenith, S.E., “Linda Coordination Language; Subsystem Kernel Architecture (on Transputers),” RR-794, Yale University, New Haven, CT (May 1990).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre America

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bal, H.E. (1991). Languages for parallel programming. In: America, P. (eds) Parallel Database Systems. PDS 1990. Lecture Notes in Computer Science, vol 503. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54132-2_47

Download citation

  • DOI: https://doi.org/10.1007/3-540-54132-2_47

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-47432-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics