Repeating history: execution replay for Parallel Haskell programs

Henrique Ferrerio, Vladimir Janjic, Laura Castro, Kevin Hammond

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

Abstract

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 per- formance 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 application is prop- erly emulated while the deterministic functional code is run unmodified. In this way, we can gather additional data about the behaviour of a par- allel 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 gives better speedups on multicore machines.
Original languageEnglish
Title of host publicationTrends in Functional Programming
Subtitle of host publication13th International Symposium
PublisherSpringer
Pages231-246
Number of pages16
Volume7829
ISBN (Electronic)9783642404474
ISBN (Print)9783642404467
DOIs
Publication statusPublished - 2013

Publication series

NameLecture Notes in Computer Science (LNCS)
PublisherSpringer

Fingerprint

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

Cite this