Personal tools
You are here: Home Events Abstract Archives 2007-2008 What does atomic mean?

What does atomic mean?

Tim Harris Microsoft Research, Cambridge 4pm Monday 31st March 2008 Room 2511, JCMB, King's Buildings Note nonstandard day

Over the last few years we've been working on the design and implementation of "atomic" blocks as an alternative to mutual exclusion locks for concurrency control in shared memory multi-threaded programs.

In this talk I'll discuss some of the surprising challenges we've found in what appeared to be a simple part of this work: defining the semantics of programs using atomic blocks. For example, what happens if a program accesses a shared object inside an atomic block and, at the same time, accesses it in ordinary code? What if an atomic block is used to make a shared object private to a thread which then accesses it without any concurrency control?

As I'll discuss, deciding how to answer these questions seems to involve a tension between an implementation that does not modify non-transacted code ("no slowdown"), a programming model with strong semantics ("no surprises"), and a programming model where data can be shared between transacted and non-transacted code ("no segregation").

I'll argue that one way to reconcile these tensions is to take the same approach that Adve & Hill pioneered in programming processors with relaxed memory models: a contract between the programmer and the implementation such that "good" correctly synchronized programs are implemented with strong semantics.

Document Actions