Relaxed correctness criteria for modern multi-core architectures (2016–2019)
Multi-core computers have become ubiquitous over the last decade, now being standard in everything from laptops to mobile phones. Their benefits are clear - better performance leading to more sophisticated applications. Key to ensuring those benefits are complex, and often subtle, algorithms that exploit the parallelism multi-core computers offer. This project aims to lay foundations for extending those benefits to applications where high reliability is a concern. It will do so by developing theoretical results about correctness of algorithms on standard multi-core computers, and practical tools and techniques aimed at helping programmers of multi-core computers to better understand the behaviour of their code.