Abstract
While in the sequential world the programmer can concentrate on the algorithmic solution to his given problem, in parallel and distributed systems he also has to consider aspects of communication, synchronization and data movement. In this paper we describe a prototypical middleware solution that enables the clear separation of these aspects. We combine algorithmic skeletons describing the computational aspects with overlapping data distributions describing the communication and synchronization. Both are expressed in a high-level manner. The system automatically coordinates the different activities and allows the programmer to easily change the underlying communication topology.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Abbott, M., Altenkirch, T., Ghani, N.: Categories of containers. In: Gordon, A.D. (ed.) FOSSACS 2003. LNCS, vol. 2620, pp. 23–38. Springer, Heidelberg (2003)
Benoit, A., Cole, M., Gilmore, S., Hillston, J.: Flexible skeletal programming with eSkel. In: Cunha, J.C., Medeiros, P.D. (eds.) Euro-Par 2005. LNCS, vol. 3648, pp. 761–770. Springer, Heidelberg (2005)
Blelloch, G.E.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)
Bonsangue, M.M., Kok, J.N., Zavattaro, G.: Comparing software architectures for coordination languages. In: Ciancarini, P., Wolf, A.L. (eds.) COORDINATION 1999. LNCS, vol. 1594, pp. 150–165. Springer, Heidelberg (1999)
Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science, Special Issue on Parallel Computing (1998)
Chakravarty, M.M.T., Keller, G., Leshchinskiy, R., Pfannenstiel, W.: Nepal - nested data parallelism in Haskell. In: Sakellariou, R., Keane, J.A., Gurd, J.R., Freeman, L. (eds.) Euro-Par 2001. LNCS, vol. 2150, pp. 524–534. Springer, Heidelberg (2001)
Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)
Cole, M.I.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3), 389–406 (2004)
Darlington, J., Guo, Y., To, H.W., Yang, J.: Functional skeletons for parallel coordination. In: Haridi, S., Ali, K., Magnusson, P. (eds.) Euro-Par 1995. LNCS, vol. 966, pp. 55–69. Springer, Heidelberg (1995)
Didrich, K., Fett, A., Gerke, C., Grieskamp, W., Pepper, P.: OPAL: Design and Implementation of an Algebraic Programming Language. In: Gutknecht, J. (ed.) PLSA 1994. LNCS, vol. 782, pp. 228–244. Springer, Heidelberg (1994)
Donaldson, S.R., Hill, J.M.D., Skillicorn, D.B.: Predictable performance on unpredictable networks: Implementing BSP over TCP/IP. In: Pritchard, D., Reeve, J.S. (eds.) Euro-Par 1998. LNCS, vol. 1470, pp. 970–980. Springer, Heidelberg (1998)
High Performance Fortran Forum. High Performance Fortran — language specification. Scientific Programming 2(1) (June 1993)
Foster, I.: Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison-Wesley, Reading (1995)
Foster, I., Kesselmann, C.: The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, San Francisco (1999)
Geist, G.A., Beguelin, A., Dongarra, J., Jiang, W., Mancheck, R., Sunderam, V.S.: PVM: Parallel Virtual Machine – A Users’ Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge (1994)
Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)
Gorlatch, S.: Send-receive considered harmful: Myths and realities of message passing. ACM Transactions on Programming Languages and Systems (TOPLAS) 26(1), 47–56 (2004)
Grelck, C., Scholz, S.-B.: Generic array programming in SAC. In: Goerigk, W. (ed.) Programmiersprachen und Rechenkonzepte. 21. GI-Workshop, 2004, pp. 43–53 (January 2005)
Gropp, W.: Learning from the success of MPI. In: Monien, B., Prasanna, V.K., Vajapeyam, S. (eds.) HiPC 2001. LNCS, vol. 2228, pp. 81–92. Springer, Heidelberg (2001)
Herrmann, C., Lengauer, C.: Parallelization of divide-and-conquer by translation to nested loops. Journal of Functional Programming 9(3), 279–310 (1999)
Hill, J.M.D., McColl, B., Stefanescu, D.C., Goudreau, M.W., Lang, K., Rao, S.B., Suel, T., Tsantilas, T., Bisseling, R.H.: BSPlib: The BSP programming library. Parallel Computing 24(14), 1947–1980 (1998)
Jay, C.B.: Separating shape from data. In: Moggi, E., Rosolini, G. (eds.) CTCS 1997. LNCS, vol. 1290, pp. 47–48. Springer, Heidelberg (1997)
Jay, C.B.: A semantics for shape. Sci. Comput. Program 25(2-3), 251–283 (1995)
Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)
Nitsche, T.: Data Distribution and Communication Management for Parallel Systems. PhD thesis, Technical Univ. of Berlin, Dept. of Comp. Sci. and Electr. Eng. (2005)
Nitsche, T.: Deriving and scheduling communication operations for generic skeleton implementations. Parallel Processing Letters 15(3), 337–352 (2005)
Nitsche, T., Webers, W.: Functional message passing with OPAL-MPI. In: Alexandrov, V.N., Dongarra, J. (eds.) PVM/MPI 1998. LNCS, vol. 1497, pp. 281–288. Springer, Heidelberg (1998)
Omicini, A., Zambonelli, F.: Coordination of mobile agents in TuSCoN. Internet Research 8(5) (1998)
Papadopoulos, G.A., Arbab, F.: Coordination models and languages. Advances in Computers 46 (1998)
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)
Snir, M., Otto, S.W., Huss-Ledermann, S., Walker, D.W., Dongarra, J.: MPI — The Complete Reference. The MPI Core, vol. 1. MIT Press, Cambridge (1998)
Südholt, M.: The Transformational Derivation of Parallel Programs using Data Distribution Algebras and Skeletons. PhD thesis, Technical Univ. of Berlin (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nitsche, T. (2006). Coordinating Computation with Communication. In: Ciancarini, P., Wiklicky, H. (eds) Coordination Models and Languages. COORDINATION 2006. Lecture Notes in Computer Science, vol 4038. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11767954_14
Download citation
DOI: https://doi.org/10.1007/11767954_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34694-4
Online ISBN: 978-3-540-34695-1
eBook Packages: Computer ScienceComputer Science (R0)