Skip to main content

Transforming Rapid Prototypes to Efficient Parallel Programs

  • Chapter

Abstract

Sequential programming has overcome its preoccupation with details of the machine organisation several decades ago. In contrast, the average parallel programmer spends a large amount of development time on organisational details like synchronisation, communication, marshalling, etc. Message passing libraries like MPI are useful aids at this level ¡ª but they give the programmer a large choice of complex options rather than removing organisational issues with bold abstractions.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Reference

  1. G. Ausiello, P. Crescenzi, Gambosi, V. Kann, A. Marchetti-Spaccamela, and M. Protasi. Complexity and Approximation. Springer-Verlag, 1999.

    Google Scholar 

  2. B. Bacci, M. Danelutto, S. Orlando, S. Pelagatti, and M. Vanneschi. P3L: A structured high level programming language and its structured support. Concurrency: Practice and Experience, 7(3):225–255, 1995

    Google Scholar 

  3. H. P. Barendregt. The Lambda Calculus. Studies in Logic 103. North-Holland, 1984.

    Google Scholar 

  4. J. L. Bentley. Programming pearls. Comm. ACM, 27:865–871, 1984.

    Google Scholar 

  5. G. E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990.

    Google Scholar 

  6. J. Darlington, A. Field, P. Harrison, P. Kelly, D. Sharp, Q. Wu, and R. L. While. Parallel programming using skeleton functions. In A. Bode, M. Reeve, and G. Wolf, editors, PARLE’93: Parallel Architectures and Languages Europe, Lecture Notes in Computer Science 694, pages 146–160. Springer-Verlag, 1993.

    Google Scholar 

  7. J. Darlington, Y. Guo, H. W. To, and J. Yang. Parallel skeletons for structured composition. In Proc. 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’95), pages 19–28 ACM Press, 1995.

    Google Scholar 

  8. T. Elrad and N. Francez. Decomposition of distributed programs into communication-closed layers. Science of Computer Programming, 2(2):155–173 1982.

    Google Scholar 

  9. M. R. Garey and D. S. Johnson. Computers and Intractability. W.H. Freeman & Co., 1979.

    Google Scholar 

  10. A. Gill J. Launchbury, and S. L. Peyton Jones. A short cut to deforestation. In Proc. Sixth Conf. on Functional Programming Languages and Computer Architecture (FPCA’93), pages 223–232. ACM Press, 1993.

    Google Scholar 

  11. S. Gorlatch. Extracting and implementing list homomorphisms in parallel program developement. Science of Comuter Programming, 33(1):1–27, 1999.

    Google Scholar 

  12. S. Gorlatch. Send-recv considered harmful? Myths and truths about parallel programming. In V. Malyshkin, editor, Parallel Computing Technologies (PaCT 2001), Lecture Note in Computer Science 2127, pages 243–257. Springer-Verlag, 2001.

    Google Scholar 

  13. P. Hammarlund and Lisper. On the relation between functional and data parallel programming languages. In Proc. Sixth Conf. on Functional Programming Languages and Computer Architecture (FPCA’93), pages 210–222. ACM Press, 1993

    Google Scholar 

  14. K. Hammond and G. Michaelson. Research Directions in Parallel Functional Programming, chapter 1. Springer-Verlag, 1999

    Google Scholar 

  15. C. A. Herrmann, C. Lengauer, R. Günz, J. Laitenberger, and C. Schaller. A compiler for HDC. Technical Report MIP-9907, Fakultät für Mathematik und Informatik, Univ. Passau, May 1999.

    Google Scholar 

  16. C. A. Herrmann and C. Lengauer. Parallelization of divide-and-conquer by translation to nested loops. J. Functional Programming, 9(3):279–310, May 1999.

    Google Scholar 

  17. C. A. Herrmann and C. Lengauer. A transformational approach which combines size inference and programm optimization. In W. Taha, editor, Semantics, Applications, and Implementation of Program Generation (SAIG’01), Lecture Notes in Computer Science 2196, pages 199–218. Springer-Verlag, 2001.

    Google Scholar 

  18. R. E. Ladner and M. J. Fisher. Parallel prefix computation. J. ACM,, 27(4):831–838, 1980.

    Google Scholar 

  19. MPI Forum. MPI: A Message-Passing Interface Standard. Univ. of Tennessee at Knoxville, 1995.,

    Google Scholar 

  20. A. D. Robinson. Impact of economics on compiler optimization. In Proc. ACM 2001 Java Grande/ISCOPE Conf., pages 1–10. ACM Press, 2001.

    Google Scholar 

  21. P. W. Trinder, K. Hammond, H.-W. Loidl, and S. L. Peyton Jones. Algorithm + strategy = parallelism. J. Functional Programming, 8(1):23–80, Jan. 1998.

    Google Scholar 

  22. M. Weber, 2000. http://www.i2.informatik.rwth-aachen.de/~michaelw/hmpi.html.

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

Herrmann, C.A., Lengauer, C. (2003). Transforming Rapid Prototypes to Efficient Parallel Programs. 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_3

Download citation

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

  • 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