Testing Speculative Work in a Lazy/Eager Parallel Functional Language

  • Alberto de la Encina
  • Ismael Rodríguez
  • Fernando Rubio
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4339)


Eden is a parallel extension of the functional language Haskell. Eden inherits from Haskell its laziness, which allows it to avoid unnecessary computations. However, in order to enable the parallel execution of processes in Eden, this feature must be disabled when new processes are instantiated. Hence, any newly created process can be speculative, as it is not known whether the computations it performs will actually be required for the overall computation. Therefore, the performance of a program may be affected by the unneeded speculation. In this paper we present a framework to compare the speculated computations of an Eden program with the computations it actually requires. Thus, the programmer is provided with a profiling tool allowing him to produce better programs where speculative work fits better the actual necessities.


Homomorphic Image Speculative Work Functional Program Functional Language Process Abstraction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chitil, O., Runciman, C., Wallace, M.: Freja, Hat and Hood - A Comparative Evaluation of Three Systems for Tracing and Debugging Lazy Functional Programs. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 176–193. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  2. 2.
    Cole, M.: Algorithmic Skeletons: Structure Management of Parallel Computations. MIT Press, Cambridge (1989) Research Monographs in Parallel and Distributed ComputingGoogle Scholar
  3. 3.
    Cole, M.: Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Computing 30, 389–406 (2004)CrossRefGoogle Scholar
  4. 4.
    Encina, A., Llana, L., Rubio, F.: Formalizing the debugging process in Haskell. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 211–226. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Gill, A.: Debugging Haskell by observing intermediate data structures. In: Proceedings of the 4th Haskell Workshop. Tech. Rep. University of Nottingham (2000)Google Scholar
  6. 6.
    Hern´andez, F., Peña, R., Rubio, F.: From GranSim to Paradise. In: Scottish Functional Programming Workshop, SFP 1999, pp. 11–19. Intellect (2000)Google Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    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
  9. 9.
    Lauer, M.: Computing by homomorphic images. In: Computer Algebra Symbolic and Algebraic Computation, pp. 139–168. Springer, Heidelberg (1982)Google Scholar
  10. 10.
    Lipson, J.D.: Chinese remainder and interpolation algorithms. In: Symposium on Symbolic and Algebraic Manipulation, SYMSAM 1971, pp. 372–391. Academic Press, London (1971)CrossRefGoogle Scholar
  11. 11.
    Loidl, H.W.: Gransim user’s guide. Department of Computing Science. University of Glasgow (1996)Google Scholar
  12. 12.
    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)zbMATHCrossRefGoogle Scholar
  13. 13.
    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, Heidelberg (2002)Google Scholar
  14. 14.
    Peyton Jones, S.L.: Compiling Haskell by program transformation: A report from the trenches. In: Riis Nielson, H. (ed.) ESOP 1996. LNCS, vol. 1058, pp. 18–44. Springer, Heidelberg (1996)Google Scholar
  15. 15.
    Peyton Jones, S.L., Hughes, J.: Report on the programming language Haskell 98. Technical report (February 1999),
  16. 16.
    Press, W., Teukolsky, S., Vetterling, W., Flannery, B.: Numerical Recipes in C the Art of Scientific Computing. In: LU Decomposition and Its Applications, 2nd edn. Cambridge University Press, Cambridge (1992)Google Scholar
  17. 17.
    Pointon, R.F., Trinder, P.W., Loidl, H.W.: Parallel and distributed Haskells. Journal of Functional Programming 12(4-5), 469–510 (2002)zbMATHMathSciNetGoogle Scholar
  18. 18.
    Rubio, F., Rodríguez, I.: A parallel framework for computational science. In: Sloot, P.M.A., Abramson, D., Bogdanov, A.V., Gorbachev, Y.E., Dongarra, J., Zomaya, A.Y. (eds.) ICCS 2003. LNCS, vol. 2658, pp. 1002–1011. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Scaife, N., Horiguchi, S., Michaelson, G., Bristow, P.: A parallel SML compiler based on algorithmic skeletons. J. Functional Programming 15(4), 615–650 (2005)zbMATHCrossRefGoogle Scholar
  20. 20.
    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, New York (1996)CrossRefGoogle Scholar
  21. 21.
    Trinder, P.W., Hammond, K., Loidl, H.-W., Peyton Jones, S.L.: Algorithm + Strategy = Parallelism. Journal of Functional Programming 8(1), 23–60 (1998)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Alberto de la Encina
    • 1
  • Ismael Rodríguez
    • 1
  • Fernando Rubio
    • 1
  1. 1.Facultad InformáticaUniversidad Complutense de MadridMadridSpain

Personalised recommendations