Transactional Coherence and Consistency
Transactional Coherence and Consistency (TCC) offers a way to simplify
parallel programming by executing all code in transactions. In TCC
systems, transactions serve as the fundamental unit of parallel work,
communication and coherence. As each transaction completes, it writes
all of its newly produced state to shared memory atomically, while
restarting other processors that have speculatively read from modified
data. With this mechanism, a TCC-based system automatically handles data
synchronization correctly, without programmer intervention. To gain the
benefits of TCC, programs must be decomposed into transactions.
Decomposing a program into transactions is largely a matter of
performance tuning rather than correctness, and that a few basic
transaction programming optimization techniques are sufficient to obtain
good performance over a wide range of applications with little
programmer effort.
For an overview of our research, see our overview presentation. For more details see our publications, presentations, and talks. This material is based upon work supported by the National Science Foundation under Grant No. 0444470. |