A Skeleton Library

  • Herbert Kuchen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2400)

Abstract

Today, parallel programming is dominated by message passing libraries such as MPI. Algorithmic skeletons intend to simplify parallel programming by increasing the expressive power. The idea is to offer typical parallel programming patterns as polymorphic higher-order functions which are efficiently implemented in parallel. The approach presented here integrates the main features of existing skeleton systems. Moreover, it does not come along with a new programming language or language extension, which parallel programmers may hesitate to learn, but it is offered in form of a library, which can easily be used by e.g. C and C++ programmers. A major technical difficulty is to simulate the main requirements for a skeleton implementation, namely higher-order functions, partial applications, and polymorphism as efficiently as possible in an imperative programming language. Experimental results based on a draft implementation of the suggested skeleton library show that this can be achieved without a significant performance penalty.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. BK96.
    G.H. Botorog, H. Kuchen: Efficient Parallel Programming with Algorithmic Skeletons, Proceedings of EuroPar’ 96, LNCS 1123, Springer, 1996.Google Scholar
  2. BK98.
    G. H. Botorog, H. Kuchen: Efficient High-Level Parallel Programming, Theoretical Computer Science 196, pp. 71–107, 1998.MATHCrossRefGoogle Scholar
  3. Co89.
    M. I. Cole: Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.Google Scholar
  4. DPP97.
    M. Danelutto, F. Pasqualetti and S. Pelagatti Skeletons for Data Parallelism in p3l, EURO-PAR’ 97, Springer LNCS 1300, pp. 619–628, 1997.CrossRefGoogle Scholar
  5. Da93.
    J. Darlington, A. J. Field, P. G. Harrison et al: Parallel Programming Using Skeleton Functions, in Proceedings of PARLE’ 93, LNCS 694, Springer, 1993.Google Scholar
  6. Da95.
    J. Darlington, Y. Guo, H. W. To, J. Yang: Functional Skeletons for Parallel Coordination, in Proceedings of EURO-PAR’ 95, LNCS 966, Springer, 1995.CrossRefGoogle Scholar
  7. FOT92.
    I. Foster, R. Olson, S. Tuecke: Productive Parallel Programming: The PCN Approach, in Scientific Programming, Vol. 1, No. 1, 1992.Google Scholar
  8. GLS99.
    W. Gropp, E. Lusk, A. Skjellum: Using MPI, MIT Press, 1999.Google Scholar
  9. HPF93.
    High Performance Fortran Forum: High Performance Fortran Language Specification, Scientific Programming, Vol. 2(1), 1993.Google Scholar
  10. Ka98.
    S. Karmesin et al.: Array Design and Expression Evaluation in POOMA II. ISCOPE 1998, pp. 231–238.Google Scholar
  11. KPS94.
    H. Kuchen, R. Plasmeijer, H. Stoltze: Efficient Distributed Memory Implementation of a Data Parallel Functional Language, PARLE, LNCS 817, 1994.Google Scholar
  12. Ku02a.
    H. Kuchen: A Skeleton Library, Technical Report, Univ. Münster, 2002.Google Scholar
  13. Ku02b.
    H. Kuchen: The Skeleton Library Web Pages, http://danae.uni-muenster.de/lehre/kuchen/Skeletons/
  14. PC2.
  15. Qu94.
    M. J. Quinn: Parallel Computing: Theory and Practice, McGraw Hill, 1994.Google Scholar
  16. SHM97.
    David B. Skillicorn, Jonathan M. D. Hill, W. F. McColl: Questions and answers about BSP, Scientific Programming 6(3): 249–274, 1997.Google Scholar
  17. Sk94.
    D. Skillicorn: Foundations of Parallel Programming, Cambridge U. Press, 1994.Google Scholar
  18. St00.
    J. Striegnitz: Making C++ Ready for Algorithmic Skeletons, Tech. Report IB-2000-08, http://www.fz-juelich.de/zam/docs/autoren/striegnitz.html

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Herbert Kuchen
    • 1
  1. 1.Department of Information SystemsUniversity of MünsterMünsterGermany

Personalised recommendations