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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
G.H. Botorog, H. Kuchen: Efficient Parallel Programming with Algorithmic Skeletons, Proceedings of EuroPar’ 96, LNCS 1123, Springer, 1996.
G. H. Botorog, H. Kuchen: Efficient High-Level Parallel Programming, Theoretical Computer Science 196, pp. 71–107, 1998.
M. I. Cole: Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.
M. Danelutto, F. Pasqualetti and S. Pelagatti Skeletons for Data Parallelism in p3l, EURO-PAR’ 97, Springer LNCS 1300, pp. 619–628, 1997.
J. Darlington, A. J. Field, P. G. Harrison et al: Parallel Programming Using Skeleton Functions, in Proceedings of PARLE’ 93, LNCS 694, Springer, 1993.
J. Darlington, Y. Guo, H. W. To, J. Yang: Functional Skeletons for Parallel Coordination, in Proceedings of EURO-PAR’ 95, LNCS 966, Springer, 1995.
I. Foster, R. Olson, S. Tuecke: Productive Parallel Programming: The PCN Approach, in Scientific Programming, Vol. 1, No. 1, 1992.
W. Gropp, E. Lusk, A. Skjellum: Using MPI, MIT Press, 1999.
High Performance Fortran Forum: High Performance Fortran Language Specification, Scientific Programming, Vol. 2(1), 1993.
S. Karmesin et al.: Array Design and Expression Evaluation in POOMA II. ISCOPE 1998, pp. 231–238.
H. Kuchen, R. Plasmeijer, H. Stoltze: Efficient Distributed Memory Implementation of a Data Parallel Functional Language, PARLE, LNCS 817, 1994.
H. Kuchen: A Skeleton Library, Technical Report, Univ. Münster, 2002.
H. Kuchen: The Skeleton Library Web Pages, http://danae.uni-muenster.de/lehre/kuchen/Skeletons/
M. J. Quinn: Parallel Computing: Theory and Practice, McGraw Hill, 1994.
David B. Skillicorn, Jonathan M. D. Hill, W. F. McColl: Questions and answers about BSP, Scientific Programming 6(3): 249–274, 1997.
D. Skillicorn: Foundations of Parallel Programming, Cambridge U. Press, 1994.
J. Striegnitz: Making C++ Ready for Algorithmic Skeletons, Tech. Report IB-2000-08, http://www.fz-juelich.de/zam/docs/autoren/striegnitz.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kuchen, H. (2002). A Skeleton Library. In: Monien, B., Feldmann, R. (eds) Euro-Par 2002 Parallel Processing. Euro-Par 2002. Lecture Notes in Computer Science, vol 2400. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45706-2_86
Download citation
DOI: https://doi.org/10.1007/3-540-45706-2_86
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44049-9
Online ISBN: 978-3-540-45706-0
eBook Packages: Springer Book Archive