Skip to main content
Erschienen in: The Journal of Supercomputing 4/2018

27.02.2018

Pardis: a process calculus for parallel and distributed programming in Haskell

verfasst von: Christopher Blöcker, Ulrich Hoffmann

Erschienen in: The Journal of Supercomputing | Ausgabe 4/2018

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended non-deterministic program behaviour. Moreover, algorithmic details are mixed with technical details concerning parallelisation and distribution. Process calculi are formal models for parallel and distributed programming but often leave details open, causing a gap between formal model and implementation. We propose a fully deterministic process calculus for parallel and distributed programming and implement it as a domain-specific language in Haskell to address these problems. We eliminate boilerplate code by abstracting from the exact notion of parallelisation and encapsulating it in the implementation of our process combinators. Furthermore, we achieve correctness guarantees regarding process composition at compile time through Haskell’s type system. Our result can be used as a high-level tool to implement parallel and distributed programs.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Fußnoten
1
To be precise, there is an undefined value \(\bot _a\) for every type a, e.g. we have \(Bool = \left\{ \bot _{Bool}, false, true \right\} \). We omit the type index since it shall be clear from context.
 
2
NFData stands for normal form data and values of data types with an instance of NFData can be fully evaluated. Haskell’s evaluation strategy is lazy evaluation, i.e. values are only evaluated if they are needed. However, through NFData we can enforce full evaluation in parallel to benefit from parallelisation.
 
3
Roughly speaking, a closure is a data structure that contains an executable computation together with inputs for that computation.
 
4
We assume there is a way to obtain a node but omit node management for brevity.
 
5
Note that there is a difference between Pardis processes and Cloud Haskell processes.
 
Literatur
1.
Zurück zum Zitat Belikov E, Deligiannis P, Totoo P, Aljabri M, Loidl HW (2013) A survey of high-level parallel programming models. Technical Report HW-MACS-TR-0103, Department of Computer Science, Heriot-Watt University Belikov E, Deligiannis P, Totoo P, Aljabri M, Loidl HW (2013) A survey of high-level parallel programming models. Technical Report HW-MACS-TR-0103, Department of Computer Science, Heriot-Watt University
3.
Zurück zum Zitat Chakravarty MM, Keller G, Lee S, McDonell TL, Grover V (2011) Accelerating Haskell array codes with multicore GPUs. In: Proceedings of the sixth workshop on declarative aspects of multicore programming, DAMP ’11, ACM, New York, NY, USA, pp 3–14. http://doi.acm.org/10.1145/1926354.1926358 Chakravarty MM, Keller G, Lee S, McDonell TL, Grover V (2011) Accelerating Haskell array codes with multicore GPUs. In: Proceedings of the sixth workshop on declarative aspects of multicore programming, DAMP ’11, ACM, New York, NY, USA, pp 3–14. http://​doi.​acm.​org/​10.​1145/​1926354.​1926358
4.
Zurück zum Zitat Coutts D, LÃűh, A (2012) Deterministic parallel programming with Haskell. Comput Sci Eng 14(6):36–43 Coutts D, LÃűh, A (2012) Deterministic parallel programming with Haskell. Comput Sci Eng 14(6):36–43
8.
Zurück zum Zitat Hoare CAR (1985) Communicating sequential processes. Prentice-Hall Inc, Upper Saddle RiverMATH Hoare CAR (1985) Communicating sequential processes. Prentice-Hall Inc, Upper Saddle RiverMATH
15.
Zurück zum Zitat Milner R (1982) A calculus of communicating systems. Springer-Verlag New York Inc, SecaucusMATH Milner R (1982) A calculus of communicating systems. Springer-Verlag New York Inc, SecaucusMATH
17.
Zurück zum Zitat Peyton Jones S, Washburn G, Weirich S (2004) Wobbly types: type inference for generalised algebraic data types. Technical Report of MS-CIS-05-26, University of Pennsylvania, Computer and Information Science Department, Levine Hall, 3330 Walnut Street, Philadelphia, Pennsylvania, 19104-6389 Peyton Jones S, Washburn G, Weirich S (2004) Wobbly types: type inference for generalised algebraic data types. Technical Report of MS-CIS-05-26, University of Pennsylvania, Computer and Information Science Department, Levine Hall, 3330 Walnut Street, Philadelphia, Pennsylvania, 19104-6389
18.
Zurück zum Zitat Schmidt DA (1986) Denotational semantics: a methodology for language development. William C. Brown Publishers, Dubuque Schmidt DA (1986) Denotational semantics: a methodology for language development. William C. Brown Publishers, Dubuque
20.
Zurück zum Zitat Stoy JE (1977) Denotational semantics: The Scott–Strachey approach to programming language theory. MIT Press, CambridgeMATH Stoy JE (1977) Denotational semantics: The Scott–Strachey approach to programming language theory. MIT Press, CambridgeMATH
Metadaten
Titel
Pardis: a process calculus for parallel and distributed programming in Haskell
verfasst von
Christopher Blöcker
Ulrich Hoffmann
Publikationsdatum
27.02.2018
Verlag
Springer US
Erschienen in
The Journal of Supercomputing / Ausgabe 4/2018
Print ISSN: 0920-8542
Elektronische ISSN: 1573-0484
DOI
https://doi.org/10.1007/s11227-018-2289-6

Weitere Artikel der Ausgabe 4/2018

The Journal of Supercomputing 4/2018 Zur Ausgabe