Dynamic Task Generation and Transformation Within a Nestable Workpool Skeleton

  • S. Priebe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4128)


Within a classical workpool skeleton a master process employs a set of worker processes to solve tasks contained in a task pool. In contrast to the usual statically fixed task set some applications generate tasks dynamically. Additionally often the need for dynamic task pool transformation arises, for example to combine newly generated partial tasks to form full tasks. We present an extended workpool skeleton for the parallel Haskell dialect Eden which provides both features and employs careful stream-processing and a termination detection mechanism. We also show how to nest the skeleton to alleviate the bottleneck a single master presents. Furthermore we demonstrate its efficiency by its fruitful use for the parallelisation of a DNA sequence alignment algorithm.


Work Process Dynamic Task Relative Speedup Master Process Complete Task 
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.
    Peyton Jones, S., et al.: Haskell 98: A Non-strict, Purely Functional Language (2003), see:
  2. 2.
    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, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)MATHGoogle Scholar
  4. 4.
    Rabhi, F.A., Gorlatch, S.: Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)MATHGoogle Scholar
  5. 5.
    Loogen, R., Ortega-Mallén, Y., Peña, R.: Parallel Functional Programming in Eden. Journal of Functional Programming, Special Issue on Functional Approaches to High-Performance Parallel Programming (2004)Google Scholar
  6. 6.
    Oak Ridge National Laboratory: Parallel Virtual Machine (2003), see:
  7. 7.
    Sheard, T., Peyton Jones, S.: Template Meta-programming for Haskell. In: Haskell Workshop 2002, ACM Press, New York (2002)Google Scholar
  8. 8.
    Needleman, S.B., Wunsch, C.D.: A general method applicable to the search for similarities in the amino acid sequence of two proteins. J. Mol. Biol. (48) (1970)Google Scholar
  9. 9.
    Anvik, J., et al.: Generating Parallel Programs from the Wavefront Design Pattern. In: Proceedings of the 7th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2002) (2002)Google Scholar
  10. 10.
    Stephens, R.: A survey of stream processing. Acta Informatica 34(7), 491–541 (1997)MATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Kahn, G., MacQueen, D.: Coroutines and Networks of Parallel Processes. In: IFIP 77, North-Holland, Amsterdam (1977)Google Scholar
  12. 12.
    Hanna, J.R.P., Johnston, W.M., Millar, R.J.: Advances in dataflow programming languages. ACM Computing Surveys 36(1), 1–34 (2004)CrossRefGoogle Scholar
  13. 13.
    Martínez, R., Peña, R.: Building an Interface Between Eden and Maple: A Way of Parallelizing Computer Algebra Algorithms. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, Springer, Heidelberg (2004)CrossRefGoogle Scholar
  14. 14.
    Giegerich, R., Kurtz, S., Weiller, G.: An Algebraic Dynamic Programming Approach to the Analysis of Recombinant DNA Sequences. In: Proceedings of Workshop on Algorithmic Ascpects of Advanced Programming Languages, Paris (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • S. Priebe
    • 1
  1. 1.Fachbereich Mathematik und InformatikPhilipps-Universität MarburgMarburgGermany

Personalised recommendations