It’s the Software, Stupid James Larus Microsoft Research April 2005
Transactional Memory Promising abstraction for concurrent programming –CMPs bring problems to the forefront Mechanism lives in software environment –simple “hardware” transactions may not provide appropriate semantics
Example 1: Conflicting Abstractions Code
Example 1: Conflicting Abstractions Code Transactional Memory
Example 1: Conflicting Abstractions Code GC
Example 1: Conflicting Abstractions Code TM GC TM
Example 2: Nested Transactions Code LibrariesComponents
What is abstraction boundary? Can library hide internal user of concurrency? Example 2: Nested Transactions Code LibrariesComponents Libraries Code
DB Example 3: IO Code TM
Summary Not starting with a clean slate TM must work within existing environment –changes to use TM will be large –unrealistic to change everything at once