Skip to main content

Coordinating Computation with Communication

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4038))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Blelloch, G.E.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science, Special Issue on Parallel Computing (1998)

    Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)

    MATH  Google Scholar 

  8. Cole, M.I.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3), 389–406 (2004)

    Article  Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. High Performance Fortran Forum. High Performance Fortran — language specification. Scientific Programming 2(1) (June 1993)

    Google Scholar 

  13. Foster, I.: Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  14. Foster, I., Kesselmann, C.: The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, San Francisco (1999)

    Google Scholar 

  15. 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)

    MATH  Google Scholar 

  16. Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)

    Article  Google Scholar 

  17. 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)

    Article  Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. Herrmann, C., Lengauer, C.: Parallelization of divide-and-conquer by translation to nested loops. Journal of Functional Programming 9(3), 279–310 (1999)

    Article  MATH  Google Scholar 

  21. 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)

    Article  Google Scholar 

  22. Jay, C.B.: Separating shape from data. In: Moggi, E., Rosolini, G. (eds.) CTCS 1997. LNCS, vol. 1290, pp. 47–48. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  23. Jay, C.B.: A semantics for shape. Sci. Comput. Program 25(2-3), 251–283 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  24. Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  25. Nitsche, T.: Data Distribution and Communication Management for Parallel Systems. PhD thesis, Technical Univ. of Berlin, Dept. of Comp. Sci. and Electr. Eng. (2005)

    Google Scholar 

  26. Nitsche, T.: Deriving and scheduling communication operations for generic skeleton implementations. Parallel Processing Letters 15(3), 337–352 (2005)

    Article  MathSciNet  Google Scholar 

  27. 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)

    Chapter  Google Scholar 

  28. Omicini, A., Zambonelli, F.: Coordination of mobile agents in TuSCoN. Internet Research 8(5) (1998)

    Google Scholar 

  29. Papadopoulos, G.A., Arbab, F.: Coordination models and languages. Advances in Computers 46 (1998)

    Google Scholar 

  30. Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)

    MATH  Google Scholar 

  31. 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)

    Google Scholar 

  32. Südholt, M.: The Transformational Derivation of Parallel Programs using Data Distribution Algebras and Skeletons. PhD thesis, Technical Univ. of Berlin (1997)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics