• Cite Icon4
  • https://doi.org/10.1145/1011508.1011509Copy DOI Icon

First-class monadic schedules

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Parallel functional languages often use meta-linguistic annotations to provide control over parallel evaluation. In this paper we explore a flexible mechanism to control when an expression is evaluated: first-class monadic schedules . We discuss the advantages of using such first-class values over traditional annotation-based systems. In particular, it is often desirable to make decisions about the operational behavior of parallel programs depending on the dynamic state of the system. For example, we may want to measure the system load before deciding to evaluate expressions in parallel. For this purpose, we show how monads can be used to access dynamic system parameters in a referentially transparent manner (up to termination).As a mechanism to reason about schedules, we present a set of algebraic properties that any implementation of schedules must satisfy. We also describe an implementation that translates schedules into a dialect of Scheme extended with futures . We prove that this implementation satisfies the given set of algebraic properties, and give performance results for a parallel solution to the n -body problem using the Barnes--Hut method.Although our ideas were developed specifically for nonstrict functional languages such as Haskell, we briefly discuss how they can be used with strict functional languages and imperative languages as well.

Similar Papers
  • Research Article
  • Citations5

Hierarchical memory management for mutable state

  • Feb 10, 2018
  • ACM SIGPLAN Notices
  • Adrien Guatto +4
  • Conference Article
  • Citations20

Hierarchical memory management for mutable state

  • Feb 10, 2018
  • Adrien Guatto +4
  • Book Chapter

Safe and Familiar Multi-core Programming by Means of a Hybrid Functional and Imperative Language

  • Jan 01, 2010
  • Ronald Veldema +1
  • Research Article

2DT-FP: A parallel functional programming language on two-dimensional data

  • Oct 01, 1995
  • International Journal of Parallel Programming
  • Yosi Ben-Asher +3
  • Book Chapter
  • Citations38

Concurrent clean

  • Jan 01, 1991
  • E G J M H Nöcker +3
  • Conference Instance
  • Citations3

Proceedings of the 13th ACM SIGPLAN international conference on Functional programming

  • Sep 20, 2008
  • Conference Article
  • Citations13

First-class schedules and virtual maps

  • Jan 01, 1995
  • Rajiv Mirani +1
  • Conference Article
  • Citations5

A high performance Erlang Tcp/Ip stack

  • Sep 26, 2005
  • Javier Paris +2
  • Research Article
  • Citations1

Discovering Functional Programming Through Imperative Languages

  • Jan 01, 1992
  • Computer Science Education
  • Paul A Bailes
  • PDF
  • Research Article
  • Citations30

Achieving high-performance the functional way: a functional pearl on expressing high-performance optimizations as rewrite strategies

  • Aug 02, 2020
  • Proceedings of the ACM on Programming Languages
  • Bastian Hagedorn +5
  • Conference Article
  • Citations99

Do be do be do

  • Jan 01, 2017
  • Sam Lindley +2
  • Book Chapter
  • Citations1

Do-be-do-be-do

  • Sep 13, 2016
  • Sam Lindley +2
  • Research Article
  • Citations3

Automatic parallelization of XQuery programs on multi-core systems

  • Mar 07, 2016
  • The Journal of Supercomputing
  • Rongxin Chen +3
  • Research Article
  • Citations4

Hierarchical memory management for parallel programs

  • Sep 04, 2016
  • ACM SIGPLAN Notices
  • Ram Raghunathan +3
  • Conference Article

A performance analyzer for a parallel real-time functional language

  • Jan 01, 1996
  • O Hansen +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.