© University of Kent - Contact | Feedback | Legal | FOI | Cookies
Abstract for Seminar
Multiprocessors are now ubiquitous, supporting a wide range of
high-performance software with an abstraction of shared memory
that concurrently executing threads can use to communicate.
However, exactly what this key abstraction is ---what the hardware
designers and compiler writers implement, and what programmers can
depend on--- is surprisingly elusive.
In this talk I will discuss work by my colleagues and I to clarify the
memory models of some production multiprocessors (x86, POWER, and ARM)
and programming languages (the upcoming C++ and C revised standards),
and to reason above these (with verified compilation). This touches
on many areas: hardware microarchitecture, compiler optimisations, the
guarantees needed for concurrent algorithms, techniques for loose
specification and model exploration, and pragmatic and commercial
issues relating to vendor specifications.