Abstract
In this paper, we present ConCoord: a software environment for Concurrent Coordinated programming. ConCoord contributes to concurrent programming in three ways. First, it separates programming into computation and coordination in order to reduce programming complexity. A ConCoord program is a dynamic collection of processes for either computation or coordination. Computation processes encapsulate conventional sequential computations. Coordination processes manage concurrency and only this. They handle dynamic evolution of the program structure depending on conditions on the program structure and execution state of processes. Second, ConCoord is targeted at networks of sequential and parallel machines. These networks support efficiently the exploitation of a diversity of concurrency grains on their different architectures. In order to take advantage of this feature, ConCoord provides linguistic support for heterogeneous concurrency exploitation. Third, reuse has being a primary concern in ConCoord's design. In our environment, sequential algorithms can be reused within computation processes. Concurrency management of concurrent algorithms can be reused within coordination processes. Both computation and coordination processes can be specified as parameterised reusable software components.
This work has been supported by the grant pf93 5416228 from the Spanish Ministry of Education and Sciences MEC.
Preview
Unable to display preview. Download preview PDF.
References
J.M. Andreoli, P. Ciancarini, and R. Pareschi. Interaction abstract machines. Research Directions in Concurrent Object Oriented Computing, 6:81–90, 1992.
F. Arbab, I. Herman, and P. Spilling. An overview of Manifold and its implementation. Concurrency: Practice and Experience, 5(1):23–70, February 1993.
J-P. Banâtre, A. Coutant, and D. Le Metayer. A parallel machine for multiset transformation and its programming style. Future Generation Computer Systems, 4:133–145, 1988.
M.R. Barbacci, D.L. Doubleday, C.B. Weinstock, M.J. Gardner, and R.W. Lichota. Building Fault Tolerant Distributed Applications With Durra. In Proc. of International Workshop on Configurable Distributed Systems, pages 128–139. IEE London, 1992.
J.P. Browne, J. Werth, and T. Lee. Intersection of parallel structuring and reuse of software components: A calculus of composition of components for parallel programs. In Proc. International Conference on Parallel Processing, pages 126–130. Penn. State Press 1989, 1989.
N. Carriero and D. Gelernter. Linda in context. Communications of ACM, 32(4):444–458, April 1989.
N. Carriero and D. Gelernter. How to write parallel programs: A first course. MIT Press, 1990.
S. Cox, S-Y Huang, P. Kelly, J. Liu, and F. Taylor. Program transformations for static process networks. SIGPLAN Notices, January 1993.
K.M. Chandy and S. Taylor. An Introduction to Parallel Programming. Jones and Bartlett Publishers, 1992.
E.W. Dijkstra. Guarded Commands, Nondeterminancy and Formal Derivation of Programs. Communications of ACM, 18(8):453–457, 1975.
M. Danelutto, R. Di Meglio, S. Orlando, S. Pelagatti, and M. Vanneschi. A methodology for the development and the support of massively parallel programs. Future Generation Computer Systems (North Holland), 8:205–220, 1992.
G. Etzkorn. Change programming in distributed systems. In Proc. of International Workshop on Configurable Distributed Systems, pages 140–151. IEE London, 1992.
M. Endler and J. Wei. Programming generic dynamic reconfigurations for distributed applications. In Proc. of International Workshop on Configurable Distributed Systems, pages 68–79. IEE London, 1992.
I. Foster and M. Chandy. Modular Fortran: Introduction and language definition. Draft paper, June 1992.
I. Foster and S. Taylor. Strand. New Concepts in Parallel Programming. Prentice-Hall, 1990.
A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam. PVM 3 user's guide and reference manual. Technical report, Oak Ridge National Laboratory, 1994.
Ltd. INMOS. occam Programming Manual. Prentice-Hall International Series in Computer Science, 1984.
J. Kramer. Configuration Programming: Exploiting Component Reuse in Distributed Systems. In P. Hall, editor, Software Reuse and Reverse Engineering in Practice. Chapman and Hall, 1991.
R.J. LeBlanc and A.B. Maccabe. The design of a programming language based on connectivity networks. In Proc. of 3rd International Conference on Distributed Computing Systems, pages 532–541. IEEE, 1982.
S. Lucco and O. Sharp. Delirium: An embedding coordination language. In Proceedings of Supercomputing'90, pages 515–524. IEEE, 1990.
K. Marzullo, R. Cooper, M. Wood, and K. Birman. Tools for Distributed Application Management. Technical report, Cornell University, 1990.
J. Magee, N. Dulay, and J. Kramer. Structuring Parallel and Distributed programs. In Proc. of International Workshop on Configurable Distributed Systems, pages 102–117. IEE London, 1992.
J. Magee, N. Dulay, and J. Kramer. Regis: A constructive development environment for distributed programs. Distributed Systems Engineering Journal, 1(5):304–312, September 1994.
United States Department of Defense. Reference manual for the Ada programming language. Technical report, 1983.
B. Stroustrup. The C++ Programming Language. Addison-Wesley, 1991.
L.H. Turcotte. A Survey of Software Environments for Exploiting Networked Computing Resources. Technical report, Mississippi State University, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Holzbacher, A.A. (1996). A software environment for concurrent coordinated programming. In: Ciancarini, P., Hankin, C. (eds) Coordination Languages and Models. COORDINATION 1996. Lecture Notes in Computer Science, vol 1061. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61052-9_50
Download citation
DOI: https://doi.org/10.1007/3-540-61052-9_50
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61052-6
Online ISBN: 978-3-540-49936-7
eBook Packages: Springer Book Archive