Coordinating Computation with Communication

  • Thomas Nitsche
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4038)


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.


Parallel Program Generic Cover Communication Operation Algorithmic Skeleton Jacobi Algorithm 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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)CrossRefGoogle Scholar
  2. 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)CrossRefGoogle Scholar
  3. 3.
    Blelloch, G.E.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)Google Scholar
  4. 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. 5.
    Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science, Special Issue on Parallel Computing (1998)Google Scholar
  6. 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)CrossRefGoogle Scholar
  7. 7.
    Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)MATHGoogle Scholar
  8. 8.
    Cole, M.I.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3), 389–406 (2004)CrossRefGoogle Scholar
  9. 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)CrossRefGoogle Scholar
  10. 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. 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)CrossRefGoogle Scholar
  12. 12.
    High Performance Fortran Forum. High Performance Fortran — language specification. Scientific Programming 2(1) (June 1993)Google Scholar
  13. 13.
    Foster, I.: Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison-Wesley, Reading (1995)MATHGoogle Scholar
  14. 14.
    Foster, I., Kesselmann, C.: The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, San Francisco (1999)Google Scholar
  15. 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)MATHGoogle Scholar
  16. 16.
    Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)CrossRefGoogle Scholar
  17. 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)CrossRefGoogle Scholar
  18. 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. 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)CrossRefGoogle Scholar
  20. 20.
    Herrmann, C., Lengauer, C.: Parallelization of divide-and-conquer by translation to nested loops. Journal of Functional Programming 9(3), 279–310 (1999)MATHCrossRefGoogle Scholar
  21. 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)CrossRefGoogle Scholar
  22. 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)CrossRefGoogle Scholar
  23. 23.
    Jay, C.B.: A semantics for shape. Sci. Comput. Program 25(2-3), 251–283 (1995)MATHCrossRefMathSciNetGoogle Scholar
  24. 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)CrossRefGoogle Scholar
  25. 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. 26.
    Nitsche, T.: Deriving and scheduling communication operations for generic skeleton implementations. Parallel Processing Letters 15(3), 337–352 (2005)CrossRefMathSciNetGoogle Scholar
  27. 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)CrossRefGoogle Scholar
  28. 28.
    Omicini, A., Zambonelli, F.: Coordination of mobile agents in TuSCoN. Internet Research 8(5) (1998)Google Scholar
  29. 29.
    Papadopoulos, G.A., Arbab, F.: Coordination models and languages. Advances in Computers 46 (1998)Google Scholar
  30. 30.
    Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)MATHGoogle Scholar
  31. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Thomas Nitsche
    • 1
  1. 1.Research Institute for Communication, Information Processing and Ergonomics (FGAN/FKIE) 

Personalised recommendations