Skip to main content

A Debugger for Parallel Haskell Dialects

  • Conference paper
Algorithms and Architectures for Parallel Processing (ICA3PP 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5022))

Abstract

Due to its high-level nature, parallel functional languages provide some advantages for the programmer. Unfortunately, the functional programming community has not paid much attention to some important practical problems, like debugging parallel programs. In this paper we introduce the first debugger that works with any parallel extension of the functional language Haskell, the de facto standard in the (lazy evaluation) functional programming community. The debugger is implemented as an independent library. Thus, it can be used with any Haskell compiler. Moreover, the debugger can be used to analyze how much speculative work has been done in any program.

Research partially supported by the MCYT project TIN2006-15578-C02-01, the Junta de Castilla-La Mancha project PAC06-0008-6995, and the Marie Curie project MRTN-CT-2003-505121/TAROT.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. Cole, M.: Algorithmic Skeletons: Structure Management of Parallel Computations. Research Monographs in Parallel and Distributed Computing. MIT Press (1989)

    Google Scholar 

  2. Cole, M.: Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Computing 30, 389–406 (2004)

    Article  Google Scholar 

  3. Gill, A.: Debugging Haskell by observing intermediate data structures. In: Proceedings of the 4th Haskell Workshop. Tech. Rep. University of Nottingham (2000)

    Google Scholar 

  4. Kelly, P.H.J.: Functional Programming for Loosely-Coupled Multiprocessors. Research Monographs in Parallel and Distributed Computing. MIT Press (1989)

    Google Scholar 

  5. Klusik, U., Loogen, R., Priebe, S., Rubio, F.: Implementation skeletons in Eden: Low-effort parallel programming. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 71–88. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Klusik, U., Peña, R., Rubio, F.: Replicated workers in Eden. In: Constructive Methods for Parallel Programming, CMPP 2000, pp. 143–164. Nova Science (2000)

    Google Scholar 

  7. Lipson, J.D.: Chinese remainder and interpolation algorithms. In: Symp. Symbolic and Algebraic Manipulation, SYMSAM 1971, pp. 372–391. Academic Press (1971)

    Google Scholar 

  8. Loidl, H.W., Rubio, F., Scaife, N., Hammond, K., Horiguchi, S., Klusik, U., Loogen, R., Michaelson, G.J., Peña, R., Rebón Portillo, Á.J., Priebe, S., Trinder, P.W.: Comparing parallel functional languages: Programming and performance. Higher-Order and Symbolic Computation 16(3), 203–251 (2003)

    Article  MATH  Google Scholar 

  9. Loogen, R., Ortega-Mallén, Y., Peña, R., Priebe, S., Rubio, F.: Parallelism abstractions in Eden. In: Rabhi, F.A., Gorlatch, S. (eds.) Patterns and Skeletons for Parallel and Distributed Computing, pp. 95–128. Springer (2002)

    Google Scholar 

  10. Peyton Jones, S.L., Hughes, J.: Report on the programming language Haskell 98. Technical report (February 1999), http://www.haskell.org

  11. Press, W., Teukolsky, S., Vetterling, W., Flannery, B.: LU Decomposition and Its Applications. In: Numerical Recipes in C: The Art of Scientific Computing, 2nd edn., Cambridge University Press (1992)

    Google Scholar 

  12. Scaife, N., Horiguchi, S., Michaelson, G., Bristow, P.: A parallel SML compiler based on algorithmic skeletons. Journal of Functional Programming 15(4), 615–650 (2005)

    Article  MATH  Google Scholar 

  13. Trinder, P.W., Hammond, K., Mattson Jr., J.S., Partridge, A.S., Peyton Jones, S.L.: GUM: a portable parallel implementation of Haskell. In: Programming Language Design and Implementation, PLDI 1996, pp. 79–88. ACM Press (1996)

    Google Scholar 

  14. Trinder, P.W., Loidl, H.W., Pointon, R.F.: Parallel and distributed Haskells. Journal of Functional Programming 12(4-5), 469–510 (2002)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Anu G. Bourgeois S. Q. Zheng

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

de la Encina, A., Rodríguez, I., Rubio, F. (2008). A Debugger for Parallel Haskell Dialects. In: Bourgeois, A.G., Zheng, S.Q. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2008. Lecture Notes in Computer Science, vol 5022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69501-1_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69501-1_30

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69500-4

  • Online ISBN: 978-3-540-69501-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics