Skip to content

Research at St Andrews

Repeating history: execution replay for Parallel Haskell programs

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


Henrique Ferrerio, Vladimir Janjic, Laura Castro, Kevin Hammond

School/Research organisations


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
Number of pages16
ISBN (Electronic)9783642404474
ISBN (Print)9783642404467
Publication statusPublished - 2013

Publication series

NameLecture Notes in Computer Science (LNCS)

Discover related content
Find related publications, people, projects and more using interactive charts.

View graph of relations

Related by author

  1. Learning-based dynamic pinning of parallelized applications in many-core systems

    Chasparis, G., Rossbory, M., Janjic, V. & Hammond, K., 21 Mar 2019, Proceedings 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP 2019). Institute of Electrical and Electronics Engineers Inc., 8 p. 8671569

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

  2. The Missing Link! A new skeleton for evolutionary multi-agent systems in Erlang

    Stypka, J., Turek, W., Byrski, A., Kisiel-Dorohinicki, M., Barwell, A. D., Brown, C. M., Hammond, K. & Janjic, V., Feb 2018, In : International Journal of Parallel Programming. 46, 1, p. 4-22 19 p.

    Research output: Contribution to journalArticle

  3. Efficient dynamic pinning of parallelized applications by reinforcement learning with applications

    Chasparis, G., Rossbory, M. & Janjic, V., 1 Aug 2017, Euro-Par 2017: Parallel Processing: 23rd International Conference on Parallel and Distributed Computing, Santiago de Compostela, Spain, August 28 – September 1, 2017, Proceedings. Rivera, F. F., Pena, T. F. & Cabaleiro, J. C. (eds.). Cham: Springer, p. 164-176 13 p. (Lecture Notes in Computer Science (Theoretical Computer Science and General Issues); vol. 10417).

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

  4. HPC-GAP: engineering a 21st-century High-Performance Computer algebra system

    Behrends, R., Hammond, K., Janjic, V., Konovalov, A., Linton, S. A., Loidl, H-W., Maier, P. & Trinder, P., 10 Sep 2016, In : Concurrency and Computation : Practice and Experience. 28, 13, p. 3606-3636 33 p.

    Research output: Contribution to journalArticle

ID: 47894726