University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Using Verification Tools for Automatic Parallelisation

Mike Dodds (University of Cambridge)

Info

Date

8th May 2012 (week 3, Trinity Term 2012)

Time

16:30

Place

Lecture Theatre B

Abstract

Constructing correct concurrent programs is tricky. In order to write a program that is free of bugs, the programmer must carefully avoid errors arising from interactions between threads. An appealing alternative is automatic parallelisation -- automatically constructing a concurrent program from a simpler sequential program. The programmer can write a sequential program, ignoring interactions between threads, yet reap much of the benefit of concurrency.

In this talk, I will describe a parallelisation analysis built on verification technology. Verification can extract deep information inaccessible to standard compiler optimisations. Our analysis assumes a sequential program verified using separation logic, and uses the verification information to automatically identify parts of the program that can run in parallel. Unlike previous approaches, our analysis can inject synchronisation constructs to enforce necessary data-dependencies. We generate a proof along with a concurrent program, so the resulting concurrent programs are verified by construction.

Speaker bio

Mike Dodds is a postdoc working at the University of Cambridge. His research focusses on verifying complex concurrent algorithms. Dodds was a co-developer of deny-guarantee, a version of separation logic aimed at modular concurrent reasoning. Dodds is a developer on coreStar, a language-agnostic proof tool for separation logic. He has also worked on using separation logic to inject parallelism into sequential programs. He is currently working on verifying algorithms on relaxed memory systems -- in particular, on the new C11 model.

Further info

Related series