Date: 07 Apr 2010
From: jyrki@diku.dk
Subject: Master's thesis on software transactional memory

Oral defence of M.Sc. thesis: DikuSTM: A Transactional Memory Library 
for C++ and C++0x

Defender: Jesper Alf Dam
Censor: Kasper Graversen
Supervisor: Jyrki Katajainen
Time: Monday, 12 April 2010 at 15.00–16.00
Place: Computer room 3-1-25

Abstract:

As multicore processors become increasingly common, robust concurrent 
programming techniques are getting increasingly important. Locking 
mechanisms such as mutexes and monitors are commonly used, but are hard 
to use correctly, and do little to prevent common error situations such 
as race conditions, deadlocks and livelocks. Code written using these 
techniques also prevent programmers from abstracting away the 
implementation details of their code, as individually thread-safe pieces 
of code cannot be safely composed into larger thread-safe components.

Software Transactional Memory (STM) is an alternative concurrency model, 
which uses transactions as the basic synchronization mechanism; any code 
within a transaction is executed in isolation from other transactions 
and commits its changes atomically, providing semantics very similar to 
those known from database management systems.

In this work, strategies for designing and implementing an STM system in 
C++, and the upcoming language revision informally known as C++0x, are 
explored. With an emphasis on correctness and simplicity of use, generic 
programming techniques are used to design an elegant and general 
interface for library users, preserving compile-time type safety and 
minimizing the scope for programmer errors, while also avoiding the 
performance penalty of run-time polymorphism.

We also develop a double-buffered deferred update scheme, eliminating 
many of the problems typically associated with deferred update systems. 
As all transactional data is allocated in-place, we also avoid the 
extensive dynamic allocations and pointer indirections typically 
associated with indirection-based systems.

The thesis is available online at 
http://www.diku.dk/~jyrki/PE-lab/Jesper-Dam/

PE-lab's home page: http://www.diku.dk/~jyrki/PE-lab/