Skip to main content
Log in

pHood: Tool Description, Analysis Techniques, and Case Studies

  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

Hood allows debugging Haskell programs by introducing observation marks. In this paper, we show how to use pHood (a parallel version of Hood) to analyze properties of programs written using parallel dialects of Haskell. In particular, we have tested the tool with programs written in the languages GpH and Eden (although it also works with other parallel dialects), and we have implemented methods to perform analyses of unneeded work as well as an analysis of duplicated work. By doing so, we show the usefulness and versatility of the tool.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Al Zain, A., Hammond, K., Berthold, J., Trinder, P. W., Michaelson, G. and Aswad, M., “Low-pain, high-gain multicore programming in Haskell: coordinating irregular symbolic computations on multicore architectures,” in Workshop on Declarative Aspects of Multicore Programming, DAMP’09, ACM, pp. 25–36, 2009.

  2. Al Zain, A., Trinder, P. W., Michaelson, G. and Loidl, H. W., “Evaluating a high-level parallel language (GpH) for computational grids,” IEEE Transactions on Parallel and Distributed Systems, 19, 2, pp. 219–233, 2008.

  3. Berthold, J. and Loogen, R., “Visualizing parallel functional program runs: Case studies with the Eden trace viewer,” in Parallel Computing: Architectures, Algorithms and Applications, ParCo’07, vol. 15 of Advances in Parallel Computing, IOS Press, pp. 121–128, 2007.

  4. Cole, M., Algorithmic Skeletons: Structure Management of Parallel Computations (Research Monographs in Parallel and Distributed Computing), MIT Press, 1989.

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

    Article  Google Scholar 

  6. De la Encina, A., Rodríguez, I. and Rubio, F., “A debugger for parallel Haskell dialects,” in International Conference on Algorithms and Architectures for Parallel Processing, ICA3PP’08, LNCS, 5022, Springer, pp. 282–293, 2008.

  7. Frlinger, K. and Gerndt, M., “ompP: A profiling tool for OpenMP,” in OpenMP Shared Memory Parallel Programming, LNCS, 4315, Springer, pp. 15–23, 2008.

  8. Gill, A., “Debugging Haskell by observing intermediate data structures,” Electronic Notes in Theoretical Computer Science, 41, 1, 2000.

  9. Hernández, F., Peña, R. and Rubio, F., “From GranSim to Paradise,” in Scottish Functional Programming Workshop, SFP’99, Intellect, pp. 11–19, 2000.

  10. Herrmann, C. A. and Lengauer, C., “HDC: A higher-order language for divideand- conquer,” Parallel Processing Letters, 10, 2-3, pp. 239–250, 2000.

  11. H.-Herrero M., O.-Mallén Y.: “An operational semantics for the parallel language eden”. Parallel Processing Letters 12(2), 211–228 (2002)

    Article  Google Scholar 

  12. H.-Herrero, M. and O.-Mallén, Y., “Continuation semantics for parallel Haskell dialects,” in First Asian Symposium on Programming Languages and Systems (APLAS’03), LNCS, 1058, Springer-Verlag, pp. 303–321, 2003.

  13. H.-Herrero M., O.-Mallén Y., Rubio F.: “Analyzing the influence of mixed evaluation on the performance of Eden skeletons”. Parallel Computing 32(7-8), 523–538 (2006)

    Article  Google Scholar 

  14. Jones, S. L. P., Leshchinskiy, R., Keller, G. and Chakravarty, M. T., “Harnessing the multicores: Nested data parallelism in Haskell,” in IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS’08, Dagstuhl Seminar Proceedings, pp. 383–414, 2008.

  15. Keller, G., Chakravarty, M. T., Leshchinskiy, R., Jones, S. L. P. and Lippmeier, B., “Regular, shape-polymorphic, parallel arrays in Haskell,” in International Conference on Functional Programming, ICFP’10, ACM, pp. 261–272, 2010.

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

  17. Klusik, U., Loogen, R., Priebe, S. and Rubio, F., “Implementation skeletons in Eden: Low-effort parallel programming,” in Implementation of Functional Languages, IFL’00, LNCS, 2011, Springer, pp. 71–88, 2001.

  18. Klusik, U., Peña, R. and Rubio, F., “Replicated workers in Eden,” in Constructive Methods for Parallel Programming, CMPP’00, Nova Science, pp. 143–164, 2000.

  19. Lauer, M., “Computing by homomorphic images,” in Computer Algebra—Symbolic and Algebraic Computation, Springer-Verlag, pp. 139–168, 1982.

  20. Lipson, J. D., “Chinese remainder and interpolation algorithms,” in Symp. Symbolic and Algebraic Manipulation, SYMSAM’71, Academic Press, pp. 372–391, 1971.

  21. Loidl, H. W., “Gransim user’s guide,” Department of Computing Science, University of Glasgow, 1996.

  22. Loidl, H. W., “Linsolv: a case study in strategic parallelism,” in Glasgow Workshop on Functional Programming, 1997.

  23. Loidl H. W., Rubio F., Scaife N., Hammond K., Horiguchi S., Klusik U., Loogen R., Michaelson G., Peña R., Portillo Á. J. R., 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 

  24. Loogen R., O.-Mallén Y., Peña R.: “Parallel functional programming in Eden”. Journal of Functional Programming 15(3), 431–475 (2005)

    Article  MATH  Google Scholar 

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

  26. Marlow, S., Jones, S. L. P. and Singh, S., “Runtime support for multicore Haskell,” in International Conference on Functional Programming, ICFP’09, ACM Press, pp. 65–78, 2009.

  27. May, J. and Gyllenhaal, J. C., “Tool Gear: Infrastructure for parallel tools,” in PDPTA, CSREA Press, pp. 231–240, 2003.

  28. Nagel, W. E., Arnold, A., Weber, M., Hoppe, H.-Ch. and Solchenbach, K., “VAMPIR: Visualization and analysis of MPI resources,” Supercomputer, 12, pp. 69–80, 1996.

  29. Oancea, C. E. and Mycroft, A., “Software thread-level speculation: an optimistic library implementation,” in 1st International Workshop on Multicore Software Engineering, IWMSE’08, ACM, pp. 23–32, 2008.

  30. Jones, S. L. P. and Hughes, J., “Report on the programming language Haskell 98. Technical report,” February 1999. http://www.haskell.org.

  31. Press, W., Teukolsky, S., Vetterling, W. and Flannery, B., Numerical Recipes in C: The Art of Scientific Computing 2nd Edition, chapter LU Decomposition and Its Applications, Cambridge University Press, 1992.

  32. Prvulovic, M. and Torrellas, J., “Reenact: using thread-level speculation mechanisms to debug data races in multithreaded codes,” in 30th Annual International Symposium on Computer Architecture, IEEE, pp. 110–121, 2003.

  33. Rubio, F. and Rodríguez, I., “A parallel framework for computational science,” in International Conference on Computational Science, ICCS’03, LNCS, 2658, Springer-Verlag, pp. 1002–1011, 2003.

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

  35. Shende S.S., Malony A. D.: Tau parallel performance system”. Int. J. High Performance Computing Applications 20(2), 287–311 (2006)

    Article  Google Scholar 

  36. Trinder, P. W., Hammond, K., Mattson Jr., J. S., Partridge, A. S. and Jones, S. L. P., “GUM: a portable parallel implementation of Haskell,” in Programming Language Design and Implementation, PLDI’96, ACM Press, pp. 79–88, 1996.

  37. Trinder P. W, Hammond K, Loidl H-W, Jones S. L. P: “Algorithm + Strategy = Parallelism”. Journal of Functional Programming 8(1), 23–60 (1998)

    Article  MATH  MathSciNet  Google Scholar 

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

Corresponding author

Correspondence to Alberto de la Encina.

Additional information

Research partially supported by project TIN2012-39391-C04-04.

About this article

Cite this article

de la Encina, A., Rodríguez, I. & Rubio, F. pHood: Tool Description, Analysis Techniques, and Case Studies. New Gener. Comput. 32, 59–91 (2014). https://doi.org/10.1007/s00354-014-0103-4

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00354-014-0103-4

Keywords

Navigation