Intention preservation in deterministic multithreading: a partial solution

Deterministic multithreading is a promising new research area that aims to enable reproducible deterministic execution of multithreaded applications. Some of the proposed approaches can render data races deterministic. In this study, the authors introduce the intention preservation problem in multithreaded applications and point out that existing deterministic multithreading approaches do not always preserve the program intention. While it is desirable to automatically capture the full intention of a program and preserve it in deterministic multithreading, it might be an intractable problem. Instead, they provide a partial solution for two specific cases. In the first case, they aim to preserve the program intention for read and write operations on primitive types by tracking read–write causality. In the second case, they preserve the program intention for concurrent write operations on ordered collection types by applying an operational transformation.