Designing Distributed Computational Skeletons in D-Clean and D-Box

  • Viktória Zsók
  • Zoltán Hernyák
  • Zoltán Horváth
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4164)


Functional programming has inherent parallel features. This situation can be exploited by building different language constructs for parallel and distributed programming. Earlier we designed two languages for skeleton based distributed functional programming on a cluster. The two languages have different expressive power and abstraction levels. Our distributed functional computation is based on a multiparadigm-oriented environment with several different layers. On the highest level D-Clean coordination language primitives are applied in order to define the distribution of the pure functional computation subtasks over a PC cluster. This distribution is made according to a predefined computational scheme, which is an algorithmic skeleton, parameterized by functions, types and data. The D-Clean programs are transformed into D-Box, a lower level description language including the computational nodes implemented in the lazy functional language Clean. The computational nodes are distributed over the cluster and they communicate using the middleware services. This paper presents skeleton based functional and distributed programming using the D-Clean and D-Box languages. The main goal is to illustrate the appropriateness and applicability of the previously introduced languages for distributed evaluation of the functional programs on clusters. Here, therefore, we design distributed functional computational skeletons and we have provided a set of known algorithmic skeletons implemented as D-Clean schemes and a set of D-Box programs.


Computational Node Output Channel Input Channel Channel Type Computational Graph 
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.
    Klusik, U., Loogen, R., Priebe, S., Berthold, J., Weskamp, N.: High-Level Process Control in Eden. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 732–741. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Best, E., Hopkins, R.P.: B(PN)2 - a Basic Petri Net Programming Notation. In: Reeve, M., Bode, A., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694, pp. 379–390. Springer, Heidelberg (1993)Google Scholar
  3. 3.
    Clerici, S., Zoltan, C.: A Graphic Functional-Dataflow Language. In: Loidl, H.W. (ed.) Proceedings of the Fifth Symposium on Trends in Functional Programming, München, November 25-26, 2004, pp. 345–359 (2004)Google Scholar
  4. 4.
    Danelutto, M., Di Cosmo, R., Leroy, X., Pelagatti, S.: Parallel Functional Programming with Skeletons: the OCAMLP3L experiment. In: Proceedings of the ACM Sigplan Workshop on ML, Baltimore, USA, September 1998, pp. 31–39 (1998)Google Scholar
  5. 5.
    Dezső, B.: D-Box Developer Environment, Project work documentation, Department of Programming Languages and Compilers, University Eötvös L., Budapest, Hungary (2005)Google Scholar
  6. 6.
    Fournet, C., Le Fessant, F., Maranget, L., Schmitt, A.: JoCaml: A Language for Concurrent Distributed and Mobile Programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 129–158. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, Heidelberg (1999)MATHGoogle Scholar
  8. 8.
    Hammond, K., Portillo, A.J.R.: Haskel: Algorithmic Skeletons in Haskell. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 181–198. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Hernyák, Z., Horváth, Z., Zsók, V.: Clean-CORBA Interface Supporting Skeletons. In: Proceedings of the 6th International Conference on Applied Informatics, Eger, Hungary, January 27-31, vol. 1, pp. 191–200 (2004)Google Scholar
  10. 10.
    Horváth, Z., Hernyák, Z., Zsók, V.: Coordination Language for Distributed Clean. Acta Cybernetica 17, 247–271 (2005)MATHGoogle Scholar
  11. 11.
    Horváth, Z., Zsók, V., Serrarens, P., Plasmeijer, R.: Parallel Elementwise Processable Functions in Concurrent Clean. Mathematical and Computer Modelling 38, 865–875 (2003)MATHCrossRefGoogle Scholar
  12. 12.
    Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. In: ACM Computing Surveys, vol. 36 (1), pp. 1–34. ACM Press, New York (2004)Google Scholar
  13. 13.
    Kesseler, M.H.G.: The Implementation of Functional Languages on Parallel Machines with Distributed Memory, PhD Thesis, Catholic University of Nijmegen (1996)Google Scholar
  14. 14.
    Loidl, H.-W., Klusik, U., Hammond, K., Loogen, R., Trinder, P.W.: GpH and Eden: Comparing Two Parallel Functional Languages on a Beowulf Cluster. In: Gilmore, S. (ed.) Trends in Functional Programming. Intellect, vol. 2, pp. 39–52 (2001)Google Scholar
  15. 15.
    Loidl, H.-W., Rubio, F., Scaife, N., Hammond, K., Horiguchi, S., Klusik, U., Loogen, R., Michaelson, G.J., Peña, R., Priebe, S., Rebón Portillo, Á.J., Trinder, P.W.: Comparing Parallel Functional Languages: Programming and Performance. In: Higher-Order and Symbolic Computation, vol. 16(3), pp. 203–251. Kluwer Academic Publisher, Dordrecht (2003)Google Scholar
  16. 16.
    Peña, R., Rubio, F., Segura, C.: Deriving Non-Hierarchical Process Topologies. In: Hammond, K., Curtis, S. (eds.) Trends in Functional Programming. Intellect, vol. 3, pp. 51–62 (2002)Google Scholar
  17. 17.
    Plasmeijer, R., van Eekelen, M.: Concurrent Clean Version 2.0 Language Report (2001),
  18. 18.
    Rabhi, F.A., Gorlatch, S.(eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2002)Google Scholar
  19. 19.
    Rauber Du Bois, A., Tinder, P., Loidl, H.W.: Towards Mobility Skeletons (2004)Google Scholar
  20. 20.
    Serrarens, P.R.: Communication Issues in Distributed Functional Computing, PhD Thesis, Catholic University of Nijmegen (January 2001)Google Scholar
  21. 21.
    Zsók, V., Horváth, Z., Varga, Z.: Functional Programs on Clusters. In: Striegnitz, J., Davis, K. (eds.) Proceedings of the Workshop on Parallel/High-Performance Object-Oriented Scientific Computing (POOSC 2003), Interner Bericht FZJ-ZAM-IB-2003-09, pp. 93–100 (July 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Viktória Zsók
    • 1
  • Zoltán Hernyák
    • 2
  • Zoltán Horváth
    • 1
  1. 1.Faculty of Informatics, Department of Programming Languages and CompilersEötvös Loránd UniversityBudapest
  2. 2.Department of Information TechnologyEszterházy Károly CollegeEger

Personalised recommendations