Repeating history: Execution replay for parallel Haskell programs

Henrique Ferreiro, Vladimir Janjic, Laura M. Castro, Kevin Hammond

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Parallel profiling tools, such as ThreadScope for Parallel Haskell, allow programmers to obtain information about the performance of their parallel programs. However, the information they provide is not always sufficiently detailed to precisely pinpoint the cause of some performance problems. Often, this is because the cost of obtaining that information would be prohibitive for a complete program execution. In this paper, we adapt the well-known technique of execution replay to make it possible to simulate a previous run of a program. We ensure that the non-deterministic parallel behaviour of the Parallel Haskell application is properly emulated while its deterministic functionality is unmodified. In this way, we can gather additional data about the behaviour of a parallel program by replaying some parts of it with more detailed profiling information. We exploit this ability to identify performance bottlenecks in a quicksort implementation, and to derive a version that achieves an 82% speedup over a naive parallelisation.

Original languageEnglish
Title of host publicationTrends in Functional Programming - 13th International Symposium, TFP 2012, Revised Selected Papers
EditorsHans-Wolfgang Loidl, Ricardo Peña
Place of PublicationBerlin
Number of pages16
ISBN (Electronic)9783642404474
ISBN (Print)9783642404467
Publication statusPublished - 3 Sept 2013
Event13th Symposium on Trends in Functional Programming, TFP 2012 - St. Andrews, United Kingdom
Duration: 12 Jun 201212 Jun 2012

Publication series

NameLecture Notes in Computer Science
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Conference13th Symposium on Trends in Functional Programming, TFP 2012
Country/TerritoryUnited Kingdom
CitySt. Andrews


  • Parallel Program
  • Garbage Collection
  • Program Execution
  • Thread Block
  • Runtime System

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Repeating history: Execution replay for parallel Haskell programs'. Together they form a unique fingerprint.

Cite this