Skip to main content

Abstract

Parallelism seeks to achieve better computation performance by simultaneously using multiple processors, either in one computer or across several computers connected in a network. Parallel computing has not yet become a routine way of solving problems faster, mostly because parallel machines are hard to program. A major reason for this unsatisfactory situation is that the convenience and correctness of parallel programming has often been neglected in favour of the foremost aim of parallelism — achieving very high absolute performance.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Backhouse, P. Jansson, J. Jeuring, and L. Meertens. Generic programming: An introduction. In LNCS, volume 1608, pages 28-115. Springer-Verlag, 1999.

    Google Scholar 

  2. M. Barr. Algebraically compact functors. Journal of Pure and Applied Algebra, 82:211-231, 1992.

    Article  MathSciNet  MATH  Google Scholar 

  3. J. Bentley. Programming pearls. Comm. ACM, 27:865-871, 1984.

    Article  Google Scholar 

  4. R. Bird. Lectures on constructive functional programming. In M. Broy, editor, Constructive Methods in Computing Science, NATO ASI Series F: Computer and Systems Sciences. Vol. 55, pages 151-216. Springer-Verlag? 1988.

    Google Scholar 

  5. T. Bonk. Ein rekursiver Algorithmus zur adaptiven numerischen Quadratur mehrdimensionaler Funktionen. PhD thesis, Technische Universität München, 1994.

    Google Scholar 

  6. R. Burstall and J. Darlington. A transformation system for developing recursive programs. J. ACM, 25(1):44-67, 1977.

    Article  MathSciNet  Google Scholar 

  7. W. Cai and D. Skillicorn. Calculating recurrences using the Bird-Meertens formalism. Parallel Processing Letters, 5(2):179-190, 1995.

    Article  Google Scholar 

  8. M. Cole. Parallel programming with list homomorphisms. Parallel Processing Letters, 5(2):191-204, 1994.

    Article  Google Scholar 

  9. M. I. Cole. Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation. Pitman, 1989.

    Google Scholar 

  10. M. M. Fokkinga. Law and Order in Algorithmics. PhD thesis, University of Twente, Dept INF, Enschede, The Netherlands, 1992.

    Google Scholar 

  11. U. Fraus and H. Hußmann. Term induction proofs by a generalization of narrowing. In C. Rattray and R. G. Clark, editors, The Unified Computation Laboratory: Unifying Frameworks, Theories and Tools. Clarendon, 1992.

    Google Scholar 

  12. P. J. Freyd. Remarks on algebraically compact categories. In M. P. Four-man, P. T. Johnstone, and A. M. Pitts, editors, Applications of Categories in Computer Science: Proceedings of the LMS Symposium, Durham, 1991, number 177 in LMS Lecture Notes. Cambridge University Press, 1992.

    Google Scholar 

  13. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison Wesley, 1995.

    Google Scholar 

  14. A. Geser and S. Gorlatch. Parallelizing functional programs by generalization. J. Functional Programming, 9(6):649-673, 1999.

    Article  MathSciNet  MATH  Google Scholar 

  15. J. Gibbons. The third homomorphism theorem. Technical report, U. Auckland, 1994.

    Google Scholar 

  16. S. Gorlatch. Optimizing compositions of scans and reductions in parallel program derivation. Technical Report MIP-9711, Universität Passau, May 1997. Available athttp://www.fmi.uni-passau.de/cI/papers/Gor97b.html.

    Google Scholar 

  17. S. Gorlatch. Extracting and implementing list homomorphisms in parallel program development. Science of Computer Programming, 33(1):1-27, 1998.

    Article  MathSciNet  Google Scholar 

  18. S. Gorlatch and C. Lengauer. Parallelisation of divide-and-conquer in the Bird-Meertens formalism. Formal Aspects of Computing, 7(6):663-682, 1995.

    Article  MATH  Google Scholar 

  19. S. Gorlatch and C. Lengauer. Abstraction and performance in the design of parallel programs• overview of the SAT approach. Acta Informatica, 36(9):761-803, 2000.

    Article  MATH  Google Scholar 

  20. Z. Grant-Duff and P. Harrison. Parallelism via homomorphisms. Parallel Processing Letters, 6(2):279-295, 1996.

    Article  MathSciNet  Google Scholar 

  21. [21] B. Heinz. Lemma discovery by anti-unification of regular sorts. Technical Report 94-21, TU Berlin, May 1994.

    Google Scholar 

  22. J. O'Donnell. A correctness proof of parallel scan. Parallel Processing Letters, 4(3):329-338, 1994.

    Article  MathSciNet  Google Scholar 

  23. H. Reichel. An approach to object semantics based on terminal co-algebras. Mathematical Structures in Computer Science, 5(2):129-152, 1995.

    Article  MathSciNet  MATH  Google Scholar 

  24. D. B. Skillicorn. Foundations of Parallel Programming. Cambridge International Series on Parallel Computation. Cambridge University Press, 1994.

    Book  Google Scholar 

  25. [25] D. Smith. Applications of a strategy for designing divide-and-conquer algorithms. Science of Computer Programming, 8(3):213-229, 1987.

    Article  MATH  Google Scholar 

  26. D. Swierstra and O. de Moor. Virtual data structures. In B. Möller, H. Partsch, and S. Schuman, editors, Formal Program Development, Lecture Notes in Computer Science 755, pages 355-371. Springer-Verlag, 1993.

    Google Scholar 

  27. C. Szyperski. Component software: beyond object-oriented programming. Addison Wesley, 1998.

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag London

About this chapter

Cite this chapter

Fischer, J., Gorlatch, S., Bischof, H. (2003). Foundations of Data-parallel Skeletons. In: Rabhi, F.A., Gorlatch, S. (eds) Patterns and Skeletons for Parallel and Distributed Computing. Springer, London. https://doi.org/10.1007/978-1-4471-0097-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-0097-3_1

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-85233-506-9

  • Online ISBN: 978-1-4471-0097-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics