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.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
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.
Preview
Unable to display preview. Download preview PDF.
References
Ahuja, S., Carriero, N., and Gelernter, D., “Linda and Friends,” IEEE Computer 19(8), pp.26–34 (Aug. 1986).
Andrews, G.R., “Paradigms for Process Interaction in Distributed Programs,” TR 89-24, University of Arizona, Tucson, AZ (Oct. 1989).
Andrews, G.R. and Olsson, R.A., “The Evolution of the SR Programming Language,” Distributed Computing 1, pp. 133–149 (July 1986).
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).
Andrews, G.R. and Schneider, F.B., “Concepts and Notations for Concurrent Programming,” ACM Computing Surveys 15(1), pp. 3–43 (March 1983).
Bal, H.E., “An Evaluation of the SR Language Design,” IR-219, Vrije Universiteit, Amsterdam, The Netherlands (August 1990).
Bal, H.E., Programming Distributed Systems, Silicon Press, Summit, NJ (1990).
Bal, H.E., “Heuristic Search in PARLOG using Replicated Worker Style Parallelism,” Research Report, Vrije Universiteit, Amsterdam, The Netherlands (May 1990).
Bal, H.E., “Fault-tolerant Parallel Programming in Argus,” IR-214, Vrije Universiteit, Amsterdam, The Netherlands (May 1990).
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).
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).
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).
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).
Bjornson, R., Carriero, N., and Gelernter, D., “The Implementation and Performance of Hypercube Linda,” Report RR-690, Yale University, New Haven, CT (March 1989).
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).
Carriero, N., “The Implementation of Tuple Space Machines,” Research Report 567 (Ph.D. dissertation), Yale University, New Haven, CT (Dec. 1987).
Carriero, N. and Gelernter, D., “The S/Net's Linda Kernel,” ACM Trans. Comp. Syst. 4(2), pp. 110–129 (May 1986).
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).
Carriero, N. and Gelernter, D., “Linda in Context,” Commun. ACM 32(4), pp. 444–458 (April 1989).
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).
Clark, K.L., “PARLOG and Its Applications,” IEEE Trans. Softw. Eng. SE-14(12), pp. 1792–1804 (Dec. 1988).
Clark, K.L. and Gregory, S., “PARLOG: Parallel Programming in Logic,” ACM Trans. Program. Lang. Syst. 8(1), pp. 1–49 (Jan. 1986).
Conlon, T., Programming in PARLOG, Addison-Wesley, Wokingham, England (1989).
Floyd, R.W., “Algorithm 97: Shortest Path,” Commun. ACM 5, p. 345 (1962).
Gregory, S., Parallel Logic Programming in PARLOG, Addison-Wesley, Wokingham, England (1987).
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).
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).
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).
Kahn, K. M. and Miller, M.S., “Technical Correspondence on “Linda in Context”,” Comm. ACM 32(10), pp. 1253–1255 (Oct. 1989).
Li, K. and Hudak, P., “Memory Coherence in Shared Virtual Memory Systems,” ACM Trans. Computer Systems 7(4), pp. 321–359 (Nov. 1989).
Liskov, B., “Distributed Programming in Argus,” Commun. ACM 31(3), pp. 300–312 (March 1988).
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).
Shapiro, E., “Technical Correspondence on “Linda in Context”,” Comm. ACM 32(10), pp. 1244–1249 (Oct. 1989).
Zenith, S.E., “Linda Coordination Language; Subsystem Kernel Architecture (on Transputers),” RR-794, Yale University, New Haven, CT (May 1990).
Author information
Authors and Affiliations
Editor information
Rights 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