Abstract
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.
Supported by OTKA T037742, by GVOP-3.2.2.-2004-07-0005/3.0 ELTE IKKK and by Bolyai Scholarship of the Hungarian Academy of Sciences.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
Dezső, B.: D-Box Developer Environment, Project work documentation, Department of Programming Languages and Compilers, University Eötvös L., Budapest, Hungary (2005)
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)
Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, Heidelberg (1999)
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)
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)
Horváth, Z., Hernyák, Z., Zsók, V.: Coordination Language for Distributed Clean. Acta Cybernetica 17, 247–271 (2005)
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)
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)
Kesseler, M.H.G.: The Implementation of Functional Languages on Parallel Machines with Distributed Memory, PhD Thesis, Catholic University of Nijmegen (1996)
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)
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)
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)
Plasmeijer, R., van Eekelen, M.: Concurrent Clean Version 2.0 Language Report (2001), http://www.cs.kun.nl/~clean/Manuals/manuals.html
Rabhi, F.A., Gorlatch, S.(eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2002)
Rauber Du Bois, A., Tinder, P., Loidl, H.W.: Towards Mobility Skeletons (2004)
Serrarens, P.R.: Communication Issues in Distributed Functional Computing, PhD Thesis, Catholic University of Nijmegen (January 2001)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zsók, V., Hernyák, Z., Horváth, Z. (2006). Designing Distributed Computational Skeletons in D-Clean and D-Box. In: Horváth, Z. (eds) Central European Functional Programming School. CEFP 2005. Lecture Notes in Computer Science, vol 4164. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11894100_8
Download citation
DOI: https://doi.org/10.1007/11894100_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-46843-1
Online ISBN: 978-3-540-46845-5
eBook Packages: Computer ScienceComputer Science (R0)