A tutorial on parallel and concurrent programming in Haskell

  • Authors:
  • Simon Peyton Jones;Satnam Singh

  • Affiliations:
  • Microsoft Research Cambridge;Microsoft Research Cambridge

  • Venue:
  • AFP'08 Proceedings of the 6th international conference on Advanced functional programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This practical tutorial introduces the features available in Haskell for writing parallel and concurrent programs. We first describe how to write semi-explicit parallel programs by using annotations to express opportunities for parallelism and to help control the granularity of parallelism for effective execution on modern operating systems and processors. We then describe the mechanisms provided by Haskell for writing explicitly parallel programs with a focus on the use of software transactional memory to help share information between threads. Finally, we show how nested data parallelism can be used to write deterministically parallel programs which allows programmers to use rich data types in data parallel programs which are automatically transformed into flat data parallel versions for efficient execution on multi-core processors.