Pot: Deterministic transactional execution

Tiago M. Vale, João A. Silva, Ricardo J. Dias, João M. Lourenço

Research output: Contribution to journalArticle

3 Citations (Scopus)


This article presents Pot, a system that leverages the concept of preordered transactions to achieve deterministic multithreaded execution of programs that use Transactional Memory. Preordered transactions eliminate the root cause of nondeterminism in transactional execution: they provide the illusion of executing in a deterministic serial order, unlike traditional transactions that appear to execute in a nondeterministic order that can change from execution to execution. Pot uses a new concurrency control protocol that exploits the serialization order to distinguish between fast and speculative transaction execution modes in order to mitigate the overhead of imposing a deterministic order. We build two Pot prototypes: one using STM and another using off-the-shelf HTM. To the best of our knowledge, Pot enables deterministic execution of programs using off-the-shelf HTM for the first time. An experimental evaluation shows that Pot achieves deterministic execution of TM programs with low overhead, sometimes even outperforming nondeterministic executions, and clearly outperforming the state of the art.

Original languageEnglish
Article number52
JournalACM Transactions on Architecture and Code Optimization
Issue number4
Publication statusPublished - 1 Dec 2016


  • Concurrency control
  • Determinism
  • Deterministic multithreading
  • Hardware transactional memory
  • Software transactional memory

Fingerprint Dive into the research topics of 'Pot: Deterministic transactional execution'. Together they form a unique fingerprint.

Cite this