{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,25]],"date-time":"2025-07-25T10:14:36Z","timestamp":1753438476463,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2016,12,16]],"date-time":"2016-12-16T00:00:00Z","timestamp":1481846400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Funda\u00e7\u00e3o para a Ci\u00eancia e Tecnologia, Minist\u00e9rio da Ci\u00eancia, Tecnologia, e Ensino Superior","award":["SFRH\/BD\/84497\/2012 and PEst\/UID\/CEC\/04516\/2013"],"award-info":[{"award-number":["SFRH\/BD\/84497\/2012 and PEst\/UID\/CEC\/04516\/2013"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2016,12,28]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3017993","type":"journal-article","created":{"date-parts":[[2016,12,19]],"date-time":"2016-12-19T17:06:31Z","timestamp":1482167191000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Pot"],"prefix":"10.1145","volume":"13","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8667-887X","authenticated-orcid":false,"given":"Tiago M.","family":"Vale","sequence":"first","affiliation":[{"name":"NOVA LINCS, DI, FCT, Universidade NOVA de Lisboa, Caparica, Portugal"}]},{"given":"Jo\u00e3o A.","family":"Silva","sequence":"additional","affiliation":[{"name":"NOVA LINCS, DI, FCT, Universidade NOVA de Lisboa, Caparica, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6887-2361","authenticated-orcid":false,"given":"Ricardo J.","family":"Dias","sequence":"additional","affiliation":[{"name":"SUSE Linux GmbH and NOVA LINCS"}]},{"given":"Jo\u00e3o M.","family":"Louren\u00e7o","sequence":"additional","affiliation":[{"name":"NOVA LINCS, DI, FCT, Universidade NOVA de Lisboa, Caparica, Portugal"}]}],"member":"320","published-online":{"date-parts":[[2016,12,16]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736029"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640096"},{"volume-title":"Concurrency Control and Recovery in Database Systems","author":"Bernstein Philip","key":"e_1_2_1_3_1","unstructured":"Philip Bernstein , Vassos Hadzilacos , and Nathan Goodman . 1987. Concurrency Control and Recovery in Database Systems . Addison-Wesley , New York, NY . Philip Bernstein, Vassos Hadzilacos, and Nathan Goodman. 1987. Concurrency Control and Recovery in Database Systems. Addison-Wesley, New York, NY."},{"key":"e_1_2_1_4_1","volume-title":"Technical Specification for C++ Extensions for Transactional Memory. Retrieved","author":"C++ Committee SG5. 2015.","year":"2016","unstructured":"C++ Committee SG5. 2015. Technical Specification for C++ Extensions for Transactional Memory. Retrieved December 1, 2016 from open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/n4514.pdf. C++ Committee SG5. 2015. Technical Specification for C++ Extensions for Transactional Memory. Retrieved December 1, 2016 from open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/n4514.pdf."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485942"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522735"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1693453.1693464"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508255"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/11864219_14"},{"key":"e_1_2_1_10_1","volume-title":"Transactional memory in GCC. Retrieved","author":"Foundation Free Software","year":"2016","unstructured":"Free Software Foundation . 2014. Transactional memory in GCC. Retrieved December 1, 2016 from gcc.gnu.org\/wiki\/TransactionalMemory. Free Software Foundation. 2014. Transactional memory in GCC. Retrieved December 1, 2016 from gcc.gnu.org\/wiki\/TransactionalMemory."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2633048"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1345206.1345233"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1272996.1273029"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/165123.165164"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/319566.319567"},{"key":"e_1_2_1_16_1","volume-title":"ACM SIGPLAN Workshop on Transactional Computing (TRANSACT\u201907)","author":"Lev Yossi","year":"2007","unstructured":"Yossi Lev , Mark Moir , and Dan Nussbaum . 2007 . PhTM: Phased transactional memory . In ACM SIGPLAN Workshop on Transactional Computing (TRANSACT\u201907) . Yossi Lev, Mark Moir, and Dan Nussbaum. 2007. PhTM: Phased transactional memory. In ACM SIGPLAN Workshop on Transactional Computing (TRANSACT\u201907)."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043587"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2555243.2555252"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_20_1","volume-title":"IEEE International Symposium on Workload Characterization (IISWC\u201908)","author":"Minh Ch\u00ed Cao","year":"2008","unstructured":"Ch\u00ed Cao Minh , JaeWoong Chung , Christos Kozyrakis , and Kunle Olukotun . 2008 . STAMP: Stanford transactional applications for multi-processing . In IEEE International Symposium on Workload Characterization (IISWC\u201908) . Ch\u00ed Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. 2008. STAMP: Stanford transactional applications for multi-processing. In IEEE International Symposium on Workload Characterization (IISWC\u201908)."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508256"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628071.2628094"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/98163.98167"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/s004460050028"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/SBAC-PAD.2014.20"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.2008.55"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13374-9_23"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2213836.2213838"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229443"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442528"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1378533.1378584"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503232"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3017993","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3017993","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:24:17Z","timestamp":1750220657000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3017993"}},"subtitle":["Deterministic Transactional Execution"],"short-title":[],"issued":{"date-parts":[[2016,12,16]]},"references-count":32,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2016,12,28]]}},"alternative-id":["10.1145\/3017993"],"URL":"https:\/\/doi.org\/10.1145\/3017993","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2016,12,16]]},"assertion":[{"value":"2016-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-12-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}