Compiler and Runtime Techniques for Software Transactional Memory in Partitioned Global Address Space Languages and Runtime Libraries
This dissertation makes the following contributions: First, we showcase the programmability benefits of providing language support for atomic transactions over lock-based approaches. Second, we develop first-of-its-kind compiler techniques for mapping these high-level language constructs to low-level STM designs. Third, we develop STM runtime implementations that not only guarantee correctness for concurrently executing transactions, but does so in an efficient manner. For instance, we demonstrate for the first time how STM procedures can be implemented in a non-blocking manner, and use them to overlap computation and communication within a transaction. In general, we demonstrate the feasibility of these techniques by implementing them in Chapel, a parallel programming language being developed by Cray Inc. as part of DARPA's HPCS program, and GASNet, a runtime library that implements the PGAS abstraction. Overall, we show that STM implementations can be scaled to hundreds (if not thousands) of nodes executing tens of thousands of threads, while exhibiting performance that exceeds, if not just matches, the performance of lock-based approaches.
History
Date Modified
2017-06-05Defense Date
2010-10-29Research Director(s)
Dr. Peter KoggeCommittee Members
Dr. Douglas Thain Dr. Jay Brockman Dr. Jeffrey VetterDegree
- Doctor of Philosophy
Degree Level
- Doctoral Dissertation
Language
- English
Alternate Identifier
etd-11182010-005017Publisher
University of Notre DameAdditional Groups
- Computer Science and Engineering
Program Name
- Computer Science and Engineering