Skip to main content

Glasgow Parallel Haskell (GpH)

  • Reference work entry
Encyclopedia of Parallel Computing
  • 141 Accesses

Synonyms

GpH (Glasgow Parallel Haskell)

Definition

Glasgow Parallel Haskell (GpH) is a simple parallel dialect of the purely functional programming language, Haskell. It uses a semi-explicit model of parallelism, where possible parallel threads are marked by the programmer, and a sophisticated runtime system then decides on the timing of thread creation, allocation to processing elements, migration. There have been several implementations of GpH, covering platforms ranging from single multicore machines through to computational grids or clouds. The best known of these is the GUM implementation that targets both shared-memory and distributed-memory systems using a sophisticated virtual shared-memory abstraction built over a common message-passing layer, but there is a new implementation, GHC-SMP, which directly exploits shared-memory systems, and which targets multicore architectures.

Discussion

Purely Functional Languages and Parallelism

Because of the absence of side effects in purely...

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 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover 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

Bibliography

  1. Hammond K, Loidl H-W, Partridge A (1995) Visualising granularity in parallel programs: a graphical winnowing system for Haskell. Proceedings of the HPFC’95 – Conference on High Performance Functional Computing, Denver, pp 208–221, 10–12 April 1995

    Google Scholar 

  2. Hammond K, Michaelson G (eds) (1999) Research directions in parallel functional programming. Springer, Heidelberg

    MATH  Google Scholar 

  3. Hammond K, Zain AA, Cooperman G, Petcu D, Trinder PW (2007) SymGrid: a framework for symbolic computation on the grid. Proceedings of the EuroPar ’07: 13th International EuroPar Conference, Springer LNCS 4641, Rennes, France, pp 457–466

    Google Scholar 

  4. Loidl H-W, Trinder P, Hammond K, Junaidu SB, Morgan RG, Peyton Jones SL (1999) Engineering parallel symbolic programs in GpH. Concurrency Pract Exp 11(12):701–752

    Article  Google Scholar 

  5. Loogen R, Ortega-Mallén Y, Peña Mar R (2005) Parallel functional programming in Eden. J Functional Prog 15(3):431–475

    Article  MATH  Google Scholar 

  6. Marlow S, Jones SP, Singh S (2009) Runtime support for multicore Haskell. Proceedings of the ICFP ’09: 14th ACM SIGPLAN International Conference on Functional Programming, ACM Press, New York

    Google Scholar 

  7. Mohr E, Kranz DA, Halstead RH Jr (1991) Lazy task creation: a technique for increasing the granularity of parallel programs. IEEE Trans Parallel Distrib Syst 2(3):264–280

    Article  Google Scholar 

  8. Peyton Jones S, Clack C, Salkild J (1989) High-performance parallel graph reduction. Proceedings of the PARLE’89 – Conference on Parallel Architectures and Languages Europe, Springer LNCS 365, pp 193–206

    Google Scholar 

  9. Peyton Jones S, Hall C, Hammond K, Partain W, Wadler P (1993) The Glasgow Haskell compiler: a technical overview. Proceedings of the JFIT (Joint Framework for Information Technology) Technical Conference, Keele, UK, pp 249–257

    Google Scholar 

  10. Peyton Jones S (ed), Hughes J, Augustsson L, Barton D, Boutel B, Burton W, Fasel J, Hammond K, Hinze R, Hudak P, Johnsson T, Jones M, Launchbury J, Meijer E, Peterson J, Reid A, Runciman C, Wadler P (2003) Haskell 98 language and libraries. The revised report. Cambridge University Press, Cambridge

    Google Scholar 

  11. Pointon R, Trinder P, Loidl H-W (2000) The design and implementation of Glasgow distributed Haskell. Proceedings of the IFL’00 – 12th International Workshop on the Implementation of Functional Languages, Springer LNCS 2011, Aachen, Germany, pp 53–70

    Google Scholar 

  12. Rauber Du Bois A, Trinder P, Loidl H (2005) mHaskell: mobile computation in a purely functional language. J Univ Computer Sci 11(7):1234–1254

    Google Scholar 

  13. Roe P (1991) Parallel programming using functional languages. PhD thesis, Department of Computing Science, University of Glasgow

    Google Scholar 

  14. Trinder P, Hammond K, Loidl H-W, Peyton Jones S (1998) Algorithm + strategy = parallelism. J Funct Prog 8(1):23–60

    Article  MATH  MathSciNet  Google Scholar 

  15. Trinder P, Hammond K, Mattson J Jr, Partridge A, Peyton Jones S (1996) GUM: a portable parallel implementation of Haskell. Proceedings of the PLDI’96 – ACM Conference on Programming Language Design and Implementation, Philadelphia, pp 79–88

    Google Scholar 

  16. Trinder P, Loidl H-W, Pointon R (2002) Parallel and distributed Haskells. J Funct Prog 12(4&5):469–510. Special Issue on Haskell

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Hammond, K. (2011). Glasgow Parallel Haskell (GpH). In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_46

Download citation

Publish with us

Policies and ethics