Skip to main content

Using algorithmic skeletons with dynamic data structures

  • Conference paper
  • First Online:
Book cover Parallel Algorithms for Irregularly Structured Problems (IRREGULAR 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1117))

Abstract

Algorithmic skeletons are polymorphic higher-order functions representing common parallelization patterns. A special category are data-parallel skeletons, which perform operations on a distributed data structure. In this paper, we consider the case of distributed data structures with dynamic elements. We present the enhancements necessary in order to cope with these data structures, both on the language level and in the implementation of the skeletons. Further, we show that these enhancements practically do not affect the user, who merely has to supply two additional functional arguments to the communication skeletons. We then implement a parallel sorting algorithm using dynamic data with the enhanced skeletons on a MIMD distributed memory machine. Run-time measurements show that the speedups of the skeleton-based implementation are comparable to those obtained for a direct C implementation.

The work of this author is supported by the “Graduiertenkolleg Informatik und Technik” at the Aachen University of Technology.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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, 1993.

    Google Scholar 

  2. P. Beckman, D. Gannon, E. Johnson: Portable Parallel Programming in HPC++, to appear in Proceedings of ICPP '96, 1996.

    Google Scholar 

  3. G. Blelloch: NESL: A Nested Data-Parallel Language (3.1), Technical Report CMU-CS-95-170, Carnegie-Mellon University, 1995.

    Google Scholar 

  4. F. Bodin, P. Beckman, D. Gannon, S. Narayana, S. X. Yang: Distributed pC++: Basic Ideas for an Object-Oriented Parallel Language, in Scientific Programming, Vol. 2, Nr. 3, 1993.

    Google Scholar 

  5. G. H. Botorog, H. Kuchen: Algorithmic Skeletons for Adaptive Multigrid Methods, in Proceedings of IRREGULAR '95, LNCS 980, Springer, 1995.

    Google Scholar 

  6. G. H. Botorog, H. Kuchen: Skil: An Imperative Language with Algorithmic Skeletons for Efficient Distributed Programming, to appear in Proceedings of the Fifth International Symposium on High Performance Distributed Computing (HPDC-5), IEEE Computer Society Press, 1996.

    Google Scholar 

  7. G. H. Botorog, H. Kuchen: Parallel Programming in an Imperative Language with Algorithmic Skeletons, to appear in Proceedings of EURO-PAR '96, LNCS, Springer, 1996.

    Google Scholar 

  8. M. Chandi, C. Kesselman: CC++: A Declarative Concurrent Object Oriented Programming Notation, in Research Directions in Concurrent Object-Oriented Programming, MIT Press, 1993.

    Google Scholar 

  9. M. I. Cole: Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.

    Google Scholar 

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

  11. J. Darlington, Y. Guo, H. W. To, J. Yang: Functional Skeletons for Parallel Coordination, in Proceedings of EURO-PAR '95, LNCS 966, Springer, 1995.

    Google Scholar 

  12. High Performance Fortran Language Specification, in Scientific Programming, Vol. 2, No. 1, 1993.

    Google Scholar 

  13. H. Kuchen, R. Plasmeijer, H. Stoltze: Efficient Distributed Memory Implementation of a Data Parallel Functional Language, in Proceedings of PARLE '94, LNCS 817, Springer, 1994.

    Google Scholar 

  14. X. Li, P. Lu, J. Schaeffer et al.: On the Versatility of Parallel Sorting by Regular Sampling, Parallel Computing, Vol. 19, North-Holland, 1993.

    Google Scholar 

  15. M. J. Quinn: Parallel Computing: Theory and Practice, McGraw-Hill, 1994.

    Google Scholar 

  16. M. Röttger, U. P. Schroeder, J. Simon: Virtual Topology Library for Parix, Technical Report 148, University of Paderborn, 1994.

    Google Scholar 

  17. D. Skillicorn: Foundations of Parallel Programming, Cambridge University Press, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Alfonso Ferreira José Rolim Yousef Saad Tao Yang

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Botorog, G.H., Kuchen, H. (1996). Using algorithmic skeletons with dynamic data structures. In: Ferreira, A., Rolim, J., Saad, Y., Yang, T. (eds) Parallel Algorithms for Irregularly Structured Problems. IRREGULAR 1996. Lecture Notes in Computer Science, vol 1117. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030116

Download citation

  • DOI: https://doi.org/10.1007/BFb0030116

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61549-1

  • Online ISBN: 978-3-540-68808-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics