Aliaksandra Sankova

Relaxed Logging for Replay of Multithreaded Applications

Tese submetida para provas de mestrado em Engenharia Informática e de Computadores Instituto Superior Técnico, Universidade de Lisboa.


The advent of multi-core processors brought new opportunity to exploit parallelism in programs. However, developing concurrent programs is a sophisticated task, due the new type of bugs that may appear and that may be very difficult to find and to correct. In particular, when multiple threads access shared memory, a buggy parallel program can lead to subtle data races that generate errors in some particular thread interleavings. There is a growing interest on building tools that help to reproduce such interleavings, helping the programmer to correct the code.

One of the main techniques to achieve this goal is what has been called \emph{record and replay}: it consists of logging relevant information during the execution of a program that allows the interleaving that causes the bug to be reproduced later. This technique solves the problem of bug reproduction but, unfortunately, in many cases it introduces a substantial slowdown in the execution of the application.

This dissertation presents a study of existing approaches to record and replay, reflects on trade-offs and decisions of each system, and proposes a new approach of relaxed logging that aims at reducing the cost of the record phase without introducing a substantial increase in the time required to execute replay phase. We have implemented a prototype to validate these ideas and have evaluated it using several benchmarks.


Relaxed Logging for Replay of Multithreaded Applications
Aliaksandra Sankova
MSc Thesis. Instituto Superior Técnico, Universidade de Lisboa.
July, 2015.
Available BibTeX, MSC Thesis, extended abstract of the thesis, and mid-term report.

Luís Rodrigues