Ricardo J. Dias (2013)

PhD Student

in

PhD dissertation: Maintaining the Correctness of Transactional Memory Programs  
School: DI - FCT - UNL
Period: June 2008 — 2013
Conclusin date: November 24, 2013
Papers and Articles: HVC'12 (link), ECOOP'12 (DOI), Euro-Par'12 (DOI) [distinguished paper award], PADTAD'12 (DOI), PADTAD'11 (DOI), ComSIS (8):2:2011 (DOI), PADATD'10 (DOI), Euro-Par'09 (DOI), PADTAD'09 (DOI), ComSIS (5):2:2008 (DOI)
Papers in national conferences: INForum'12 (link), INForum'10 (link)
Work context: Synergy-VM project (funded by the National Science Foundation, PI: Prof. João Lourenço) 

Abstract: 

This dissertation addresses the challenge of maintaining the correctness of transactional memory programs, while improving its parallelism with small transactions and relaxed isolation levels.

The efficiency of the transactional memory systems depends directly on the level of parallelism, which in turn depends on the conflict rate. A high conflict rate between memory transactions can be addressed by reducing the scope of transactions, but this approach may turn the application prone to the occurrence of atomicity violations. Another way to address this issue is to ignore some of the conflicts by using a relaxed isolation level, such as snapshot isolation, at the cost of introducing write-skews serialization anomalies that break the consistency guarantees provided by a stronger consistency property, such as opacity.

In order to tackle the correctness issues raised by the atomicity violations and the write-skew anomalies, we propose two static analysis techniques: one based in a novel static analysis algorithm that works on a dependency graph of program variables and detects atomicity violations; and a second one based in a shape analysis technique supported by separation logic augmented with heap path expressions, a novel representation based on sequences of heap dereferences that certifies if a transactional memory program executing under snapshot isolation is free from writeskew anomalies.

The evaluation of the runtime execution of a transactional memory algorithm using snapshot isolation requires a framework that allows an efficient implementation of a multi-version algorithm and, at the same time, enables its comparison with other existing transactional memory algorithms. In the Java programming language there was no framework satisfying both these requirements. Hence, we extended an existing software transactional memory framework that already supported efficient implementations of some transactional memory algorithms, to also support the efficient implementation of multi-version algorithms. The key insight for this extension is the support for storing the transactional metadata adjacent to memory locations. We illustrate the benefits of our approach by analyzing its impact with both singleand multi-version transactional memory algorithms using several transactional workloads.

Keywords: Concurrent Programming, Transactional Memory, Snapshot Isolation, Static Analysis, Separation Logic, Abstract Interpretation.