Algorithmic skeletons for adaptive multigrid methods
This paper presents a new approach to parallel programming with algorithmic skeletons, i.e. common parallelization patterns. We use an imperative language enhanced by some functional features as host for the embedding of the skeletons. This allows an efficient implementation and at the same time a high level of programming. In particular, low level communication problems such as deadlocks are avoided. Both data and process parallel skeletons can be used, but the emphasis is placed on the first category. By defining data parallel skeletons for dynamic data structures, we obtain constructs for handling problems with irregular and/or dynamic character. The implementation of an adaptive multigrid algorithm illustrates how such problems can be solved by using these constructs.
KeywordsAlgorithmic Skeletons Data Parallelism Adaptive Multigrid Imperative Host Languages MIMD-DM computers
Unable to display preview. Download preview PDF.
- 1.B. Bacci, M. Danelutto, S. Orlando, S. Pelagatti, M. Vanneschi: P 3 L: a Structured High-level Parallel Language and its Structured Support, Technical Report HPL-PSC-93-55, Pisa Science Center, Hewlett-Packard Laboratories, May 1993.Google Scholar
- 2.T. A. Bratvold: Parallelizing a Functional Program Using a List-Homomorphism Skeleton, in H. Hong (ed.) Parallel Symbolic Computation PASCO '94, Lecture Notes Series in Computing, Vol. 5, World Scientific, 1994.Google Scholar
- 3.M. I. Cole: Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.Google Scholar
- 4.J. Darlington, A. J. Field, P. G. Harrison et al: Parallel Programming Using Skeleton Functions, in Proceedings of PARLE 93, LNCS 694, Springer-Verlag, 1993.Google Scholar
- 5.W. Hackbusch, U. Trottenberg: Multigrid Methods, Lecture Notes in Mathematics 960, Springer-Verlag, 1982.Google Scholar
- 6.H. Kuchen, R. Plasmeijer, H. Stoltze: Efficient Distributed Memory Implementation of Data Parallel Functional Languages, in Proceedings of PARLE 94, LNCS 817, Springer-Verlag, 1994.Google Scholar
- 7.L. D. J. C. Loyens, J. R. Moonen: ILIAS, a Sequential Language for Parallel Matrix Computations, in Proceedings of PARLE 94, LNCS 817, Springer-Verlag, 1994.Google Scholar
- 8.P. Pepper, M. Südholt, J. Exner. Functional Programming of Massively Parallel Systems, Technical Report No. 93-16, Technische Universität Berlin, 1993.Google Scholar
- 9.S. L. Peyton Jones: The Implementation of Functional Programming Languages, Prentice-Hall, 1987.Google Scholar
- 10.F. A. Rabhi: Exploiting Parallelism in Functional Languages: A “Paradigm-Oriented” Approach, in T. Lake, P. Dew (Eds.) Workshop on Abstract Machines for Highly Parallel Computers, Oxford University Press, 1993.Google Scholar
- 11.D. Skillicorn: Foundations of Parallel Programming, Cambridge Univ. Press, 1994.Google Scholar
- 12.P. Wadler: Deforestation: Transforming Programs to Eliminate Trees, in Theoretical Computer Science, No. 73, 1990, North-Holland.Google Scholar