ABSTRACT
We present Cloud Haskell, a domain-specific language for developing programs for a distributed computing environment. Implemented as a shallow embedding in Haskell, it provides a message-passing communication model, inspired by Erlang, without introducing incompatibility with Haskell's established shared-memory concurrency. A key contribution is a method for serializing function closures for transmission across the network. Cloud Haskell has been implemented; we present example code and some preliminary performance measurements.
Supplemental Material
- J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent programming in Erlang, 1993. Google ScholarDigital Library
- P. Bailey. Process-oriented language design for distributed address spaces. PhD thesis, Australian National University, Jan. 1997.Google Scholar
- A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. TOCS, 2 (1): 39--59, 1984. Google ScholarDigital Library
- J. Dean and S. Ghemawat. Mapreduce: simplified data processing on large clusters. Commun. ACM, 51: 107--113, January 2008. ISSN 0001-0782. Google ScholarDigital Library
- The GNU Mach Reference Manual. Free Software Foundation, Inc., for system version 1.3.99. edition, November 2008. http://www.gnu.org/software/hurd/gnumach-doc/.Google Scholar
- W. Gropp, E. Lusk, and A. Skjellum. Using MPI: Portable Parallel Programming with the Message Passing Interface, 2nd edition. MIT Press, Cambridge, MA, 1999. Google ScholarDigital Library
- M. Isard, M. Budiu, Y. Yu, A. Birrell, and D. Fetterly. Dryad: distributed data-parallel programs from sequential building blocks. In Proc EuroSys'07; Oper. Syst. Rev., volume 41, pages 59--72. ACM SIGOPS, March 2007. Google ScholarDigital Library
- E. Jul, H. Levy, N. Hutchinson, and A. Black. Fine-grained mobility in the Emerald system. TOCS, 6 (1): 109--133, 1988. Google ScholarDigital Library
- R. Loogen, Y. Ortega-Mallén, and R. Pena-Marí. Parallel functional programming in Eden. J. Funct. Programming, 15: 431--475, May 2005. Google ScholarDigital Library
- D. G. Murray and S. Hand. Scripting the cloud with Skywriting. In Proc. 2nd USENIX conference on Hot topics in cloud computing, HotCloud'10, pages 12--12, Berkeley, CA, USA, 2010. Google ScholarDigital Library
- D. G. Murray and S. Hand. Ciel: a universal execution engine for distributed data-flow computing. In NSDI '11: Proc. eighth symposium on Networked Systems Design and Implementation, Berkeley, CA, USA, 2011. USENIX. Google ScholarDigital Library
- E. Pitt and K. McNiff. Java.rmi: The Remote Method Invocation Guide. Addison-Wesley, Boston, MA, USA, 2001. Google ScholarDigital Library
- R. Pointon, P. Trinder, and H.-W. Loidl. The design and implementation of Glasgow Distributed Haskell. In M. Mohnen and P. Koopman, editors, Implementation of Functional Languages, volume 2011 of LNCS, pages 53--70. Springer, 2000. Google ScholarDigital Library
- R. F. Rashid and G. G. Robertson. Accent: A communication oriented network operating systems kernel. In Proc. eighth ACM Symp. Operating Systems Principles, pages 64--75. ACM SIGOPS, October 1981. Google ScholarDigital Library
- J. Reppy. Concurrent programming in ML. Cambridge University Press, 1999. Google ScholarDigital Library
- A. Rossberg. Typed Open Programming -- A higher-order, typed approach to dynamic modularity and distribution. PhD thesis, Universitat des Saarlandes, Jan. 2007.Google Scholar
- P. Sewell, J. Leifer, K. Wansbrough, F. Nardelli, M. Allen-Williams, P. Habouzit, and V. Vafeiadis. Acute: high level programming language design for distributed computation. J. Funct. Programming, 17 (4 & 5): 547--612, 2007. Google ScholarDigital Library
- T. van Noort, P. Achten, and R. Plasmeijer. Ad-hoc polymorphism and dynamic typing in a statically typed functional language. In Proc 6th ACM Workshop on Generic Programming, Baltimore. ACM, Sept. 2010. Google ScholarDigital Library
- M. Vervoot and R. Plasmeijer. Lazy dynamic input/output in the lazy functional language Clean. In Proc 14th Workshop on the Implementation of Functional Languages (IFL'02), volume 2670 of LNCS, pages 101--117. Springer, Sept. 2002. Google ScholarDigital Library
- S. Vinoski. CORBA: integrating diverse applications within distributed heterogeneous environments. IEEE Communications Magazine, 35 (2): 46--55, Feb. 1997. Google ScholarDigital Library
Index Terms
- Towards Haskell in the cloud
Recommendations
Towards Haskell in the cloud
Haskell '11We present Cloud Haskell, a domain-specific language for developing programs for a distributed computing environment. Implemented as a shallow embedding in Haskell, it provides a message-passing communication model, inspired by Erlang, without ...
The Intel labs Haskell research compiler
Haskell '13The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult ...
The Intel labs Haskell research compiler
Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on HaskellThe Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult ...
Comments