Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2034675.2034690acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Towards Haskell in the cloud

Published: 22 September 2011 Publication History

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.

Supplementary Material

JPG File (_talk11.jpg)
MP4 File (_talk11.mp4)

References

[1]
J. Armstrong, R. Virding, C. Wikström, and M. Williams. Concurrent programming in Erlang, 1993.
[2]
P. Bailey. Process-oriented language design for distributed address spaces. PhD thesis, Australian National University, Jan. 1997.
[3]
A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. TOCS, 2 (1): 39--59, 1984.
[4]
J. Dean and S. Ghemawat. Mapreduce: simplified data processing on large clusters. Commun. ACM, 51: 107--113, January 2008. ISSN 0001-0782.
[5]
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/.
[6]
W. Gropp, E. Lusk, and A. Skjellum. Using MPI: Portable Parallel Programming with the Message Passing Interface, 2nd edition. MIT Press, Cambridge, MA, 1999.
[7]
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.
[8]
E. Jul, H. Levy, N. Hutchinson, and A. Black. Fine-grained mobility in the Emerald system. TOCS, 6 (1): 109--133, 1988.
[9]
R. Loogen, Y. Ortega-Mallén, and R. Pena-Marí. Parallel functional programming in Eden. J. Funct. Programming, 15: 431--475, May 2005.
[10]
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.
[11]
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.
[12]
E. Pitt and K. McNiff. Java.rmi: The Remote Method Invocation Guide. Addison-Wesley, Boston, MA, USA, 2001.
[13]
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.
[14]
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.
[15]
J. Reppy. Concurrent programming in ML. Cambridge University Press, 1999.
[16]
A. Rossberg. Typed Open Programming -- A higher-order, typed approach to dynamic modularity and distribution. PhD thesis, Universitat des Saarlandes, Jan. 2007.
[17]
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.
[18]
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.
[19]
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.
[20]
S. Vinoski. CORBA: integrating diverse applications within distributed heterogeneous environments. IEEE Communications Magazine, 35 (2): 46--55, Feb. 1997.

Cited By

View all
  • (2024)A Language and Its Compiler for Programming Serverless Applications2024 47th MIPRO ICT and Electronics Convention (MIPRO)10.1109/MIPRO60963.2024.10569787(1979-1985)Online publication date: 20-May-2024
  • (2023)BeeHive: Sub-second Elasticity for Web Services with Semi-FaaS ExecutionProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575752(74-87)Online publication date: 27-Jan-2023
  • (2023)Could Tierless Languages Reduce IoT Development Grief?ACM Transactions on Internet of Things10.1145/35729014:1(1-35)Online publication date: 23-Feb-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
Haskell '11: Proceedings of the 4th ACM symposium on Haskell
September 2011
136 pages
ISBN:9781450308601
DOI:10.1145/2034675
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 12
    Haskell '11
    December 2011
    129 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2096148
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 September 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. erlang
  2. haskell
  3. message-passing

Qualifiers

  • Research-article

Conference

ICFP '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 57 of 143 submissions, 40%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Language and Its Compiler for Programming Serverless Applications2024 47th MIPRO ICT and Electronics Convention (MIPRO)10.1109/MIPRO60963.2024.10569787(1979-1985)Online publication date: 20-May-2024
  • (2023)BeeHive: Sub-second Elasticity for Web Services with Semi-FaaS ExecutionProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575752(74-87)Online publication date: 27-Jan-2023
  • (2023)Could Tierless Languages Reduce IoT Development Grief?ACM Transactions on Internet of Things10.1145/35729014:1(1-35)Online publication date: 23-Feb-2023
  • (2023)Actors@BIM: A Hybrid Formal Model for Cognitive BuildingsFormal Methods in Architecture10.1007/978-981-99-2217-8_26(453-477)Online publication date: 2-Aug-2023
  • (2022)Enhancing closures in scala 3 with spores3Proceedings of the Scala Symposium10.1145/3550198.3550428(22-27)Online publication date: 6-Jun-2022
  • (2022)Improving the Message Channel of SAM Using Shared MemoryProceedings of the 2022 5th International Conference on Computers in Management and Business10.1145/3512676.3512682(31-35)Online publication date: 21-Jan-2022
  • (2021)An order-aware dataflow model for parallel Unix pipelinesProceedings of the ACM on Programming Languages10.1145/34735705:ICFP(1-28)Online publication date: 19-Aug-2021
  • (2021)LambdaKube - A Functional Programming Approach in a Distributed RealmProceedings of the 2021 4th International Conference on Geoinformatics and Data Analysis10.1145/3465222.3465233(67-72)Online publication date: 14-Apr-2021
  • (2021)PaShProceedings of the Sixteenth European Conference on Computer Systems10.1145/3447786.3456228(49-66)Online publication date: 21-Apr-2021
  • (2020)Composing effects into tasks and workflowsProceedings of the 13th ACM SIGPLAN International Symposium on Haskell10.1145/3406088.3409023(80-94)Online publication date: 27-Aug-2020
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media