{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,8]],"date-time":"2026-09-08T12:50:30Z","timestamp":1788871830364,"version":"build-2803163510"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2013,1,1]],"date-time":"2013-01-01T00:00:00Z","timestamp":1356998400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/G000662\/1 and EP\/F023855\/1"],"award-info":[{"award-number":["EP\/G000662\/1 and EP\/F023855\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2013,1]]},"abstract":"<jats:p>Thread-Level Speculation (TLS) overcomes limitations intrinsic with conservative compile-time auto-parallelizing tools by extracting parallel threads optimistically and only ensuring absence of data dependence violations at runtime.<\/jats:p>\n                  <jats:p>A significant barrier for adopting TLS (implemented in software) is the overheads associated with maintaining speculative state. Based on previous TLS limit studies, we observe that on future multicore systems we will likely have more cores idle than those which traditional TLS would be able to harness. This implies that a TLS system should focus on optimizing for small number of cores and find efficient ways to take advantage of the idle cores. Furthermore, research on optimistic systems has covered two important implementation design points: eager vs. lazy version management. With this knowledge, we propose new simple and effective techniques to reduce the execution time overheads for both of these design points.<\/jats:p>\n                  <jats:p>This article describes a novel compact version management data structure optimized for space overhead when using a small number of TLS threads. Furthermore, we describe two novel software runtime parallelization systems that utilize this compact data structure. The first software TLS system, MiniTLS, relies on eager memory data management (in-place updates) and, thus, when a misspeculation occurs a rollback process is required. MiniTLS takes advantage of the novel compact version management representation to parallelize the rollback process and is able to recover from misspeculation faster than existing software eager TLS systems.<\/jats:p>\n                  <jats:p>\n                    The second one, Lector (Lazy inspECTOR) is based on lazy version management. Since we have idle cores, the question is whether we can create \u201chelper\u201d tasks to determine whether speculation is actually needed without stopping or damaging the speculative execution. In Lector, for each conventional TLS thread running speculatively with lazy version management, there is associated with it a lightweight\n                    <jats:italic>inspector<\/jats:italic>\n                    . The inspector threads execute alongside to verify quickly whether data dependencies will occur. Inspector threads are generated by standard techniques for inspector\/executor parallelization.\n                  <\/jats:p>\n                  <jats:p>\n                    We have applied both TLS systems to seven Java sequential benchmarks, including three benchmarks from SPECjvm2008. Two out of the seven benchmarks exhibit misspeculations. MiniTLS experiments report average speedups of 1.8x for 4 threads increasing close to 7x speedups with 32 threads. Facilitated by our novel compact representation, MiniTLS reduces the space overhead over state-of-the-art software TLS systems between 96% on 2 threads and 40% on 32 threads. The experiments for Lector, report average speedups of 1.7x for 2 threads (that is 1 TLS + 1 Inspector threads) increasing close to 8.2x speedups with 32 threads (16 + 16 threads). Compared to a well established software TLS baseline, Lector performs on average 1.7x faster for 32 threads and in no case (\n                    <jats:italic>x<\/jats:italic>\n                    TLS +\n                    <jats:italic>x<\/jats:italic>\n                    Inspector threads) Lector delivers worse performance than the baseline TLS with the equivalent number of TLS threads (i.e.\n                    <jats:italic>x<\/jats:italic>\n                    TLS threads) nor doubling the equivalent number of TLS threads (i.e.,\n                    <jats:italic>x<\/jats:italic>\n                    +\n                    <jats:italic>x<\/jats:italic>\n                    TLS threads).\n                  <\/jats:p>","DOI":"10.1145\/2400682.2400698","type":"journal-article","created":{"date-parts":[[2013,1,22]],"date-time":"2013-01-22T10:28:56Z","timestamp":1358850536000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["Optimizing software runtime systems for speculative parallelization"],"prefix":"10.1145","volume":"9","author":[{"given":"Paraskevas","family":"Yiapanis","sequence":"first","affiliation":[{"name":"University of Manchester, Manchester, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Demian","family":"Rosas-Ham","sequence":"additional","affiliation":[{"name":"University of Manchester, Manchester, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gavin","family":"Brown","sequence":"additional","affiliation":[{"name":"University of Manchester, Manchester, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Mikel","family":"Luj\u00e1n","sequence":"additional","affiliation":[{"name":"University of Manchester, Manchester, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2013,1,20]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the International Symposium on Computer Architecture. 280--298","author":"Agarwal A."},{"key":"e_1_2_1_2_1","unstructured":"Ali-Reza Adl-Tabatabai Shpeisman T. and Gottschlich J. 2012. Draft specification of transactional language constructs for C&plus;&plus;. Tech. rep. Transactional Memory Specification Drafting Group.  Ali-Reza Adl-Tabatabai Shpeisman T. and Gottschlich J. 2012. Draft specification of transactional language constructs for C&plus;&plus;. Tech. rep. Transactional Memory Specification Drafting Group."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/859618.859668"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2008.4771802"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2005.69"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/339647.363382"},{"key":"e_1_2_1_7_1","unstructured":"Culler D. Singh J. and Gupta A. 1998. Parallel Computer Architecture: A Hardware\/Software Approach.   Culler D. Singh J. and Gupta A. 1998. Parallel Computer Architecture: A Hardware\/Software Approach."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1693453.1693464"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of International Parallel and Distributed Processing Symposium. 20--29","author":"Dang F."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/11864219_14"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1810479.1810531"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1345206.1345241"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the International Conference on Parallel Processing (ICPP). 312--321","author":"Gupta A."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2010.5649169"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229474"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996851"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259016.2259029"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.19"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1122997"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555812"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.27"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542495"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584050"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2005.13"},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the International Symposium on Performance Analysis of Systems and Software. 77--88","author":"Packirisamy V."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065964"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065043"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736030"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(98)00024-6"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/181181.181254"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/207110.207148"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1123001"},{"key":"e_1_2_1_33_1","doi-asserted-by":"crossref","unstructured":"Saltz J. H. Berryman H. and Wu J. 1991. Multiprocessors and run-time compilation. Concurr. Practice Exper. 573--592.  Saltz J. H. Berryman H. and Wu J. 1991. Multiprocessors and run-time compilation. Concurr. Practice Exper. 573--592.","DOI":"10.1002\/cpe.4330030607"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1504176.1504199"},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the SIGPLAN Workshop on Transactional Computing.","author":"Spear M. F."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806604"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370836"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.4"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/1299042.1299062"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400682.2400698","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2400682.2400698","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:35:01Z","timestamp":1750224901000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2400682.2400698"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,1]]},"references-count":39,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,1]]}},"alternative-id":["10.1145\/2400682.2400698"],"URL":"https:\/\/doi.org\/10.1145\/2400682.2400698","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,1]]},"assertion":[{"value":"2012-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-01-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}