{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:14:06Z","timestamp":1763468046977,"version":"3.41.0"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2012,2,1]],"date-time":"2012-02-01T00:00:00Z","timestamp":1328054400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["CNS-0905149CCF-0916770"],"award-info":[{"award-number":["CNS-0905149CCF-0916770"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000144","name":"Division of Computer and Network Systems","doi-asserted-by":"publisher","award":["CNS-0905149CCF-0916770"],"award-info":[{"award-number":["CNS-0905149CCF-0916770"]}],"id":[{"id":"10.13039\/100000144","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2012,2]]},"abstract":"<jats:p>\n            Deterministic replay systems record and reproduce the execution of a hardware or software system. In contrast to replaying execution on uniprocessors, deterministic replay on multiprocessors is very challenging to implement efficiently because of the need to reproduce the order of or the values read by shared memory operations performed by multiple threads. In this paper, we present DoublePlay, a new way to efficiently guarantee replay on commodity multiprocessors. Our key insight is that one can use the simpler and faster mechanisms of single-processor record and replay, yet still achieve the scalability offered by multiple cores, by using an additional execution to parallelize the record and replay of an application. DoublePlay timeslices multiple threads on a single processor, then runs multiple time intervals (\n            <jats:italic>epochs<\/jats:italic>\n            ) of the program concurrently on separate processors. This strategy, which we call\n            <jats:italic>uniparallelism<\/jats:italic>\n            , makes logging much easier because each epoch runs on a single processor (so threads in an epoch never simultaneously access the same memory) and different epochs operate on different copies of the memory. Thus, rather than logging the order of shared-memory accesses, we need only log the order in which threads in an epoch are timesliced on the processor. DoublePlay runs an additional execution of the program on multiple processors to generate checkpoints so that epochs run in parallel. We evaluate DoublePlay on a variety of client, server, and scientific parallel benchmarks; with spare cores, DoublePlay reduces logging overhead to an average of 15% with two worker threads and 28% with four threads.\n          <\/jats:p>","DOI":"10.1145\/2110356.2110359","type":"journal-article","created":{"date-parts":[[2012,3,6]],"date-time":"2012-03-06T13:18:22Z","timestamp":1331039902000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":36,"title":["DoublePlay"],"prefix":"10.1145","volume":"30","author":[{"given":"Kaushik","family":"Veeraraghavan","sequence":"first","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dongyoon","family":"Lee","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Benjamin","family":"Wester","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jessica","family":"Ouyang","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Peter M.","family":"Chen","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jason","family":"Flinn","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Satish","family":"Narayanasamy","sequence":"additional","affiliation":[{"name":"University of Michigan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629594"},{"volume-title":"Proceedings of the 9th Symposium on Operating Systems Design and Implementation.","author":"Aviram A.","key":"e_1_2_1_2_1","unstructured":"Aviram , A. , Weng , S.-C. , Hu , S. , and Ford , B . 2010. Efficient system-enforced deterministic parallelism . In Proceedings of the 9th Symposium on Operating Systems Design and Implementation. Aviram, A., Weng, S.-C., Hu, S., and Ford, B. 2010. Efficient system-enforced deterministic parallelism. In Proceedings of the 9th Symposium on Operating Systems Design and Implementation."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/122759.122777"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736029"},{"volume-title":"Proceedings of the Symposium on Operating Systems Design and Implementation.","author":"Bergan T.","key":"e_1_2_1_5_1","unstructured":"Bergan , T. , Hunt , N. , Ceze , L. , and Gribble , S. D . 2010b. Deterministic Process Groups in dOS . In Proceedings of the Symposium on Operating Systems Design and Implementation. Bergan, T., Hunt, N., Ceze, L., and Gribble, S. D. 2010b. Deterministic Process Groups in dOS. In Proceedings of the Symposium on Operating Systems Design and Implementation."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640096"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134760.1220164"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/225535.225538"},{"volume-title":"Proceedings of the 15th International Parallel and Distributed Processing Symposium.","author":"Choi J. D.","key":"e_1_2_1_10_1","unstructured":"Choi , J. D. , Alpern , B. , Ngo , T. , and Sridharan , M . 2001. A perturbation free replay platform for cross-optimized multithreaded applications . In Proceedings of the 15th International Parallel and Distributed Processing Symposium. Choi, J. D., Alpern, B., Ngo, T., and Sridharan, M. 2001. A perturbation free replay platform for cross-optimized multithreaded applications. In Proceedings of the 15th International Parallel and Distributed Processing Symposium."},{"volume-title":"Proceedings of the USENIX Technical Conference. 1--14","author":"Chow J.","key":"e_1_2_1_11_1","unstructured":"Chow , J. , Garfinkel , T. , and Chen , P. M . 2008. Decoupling dynamic program analysis from execution in virtual environments . In Proceedings of the USENIX Technical Conference. 1--14 . Chow, J., Garfinkel, T., and Chen, P. M. 2008. Decoupling dynamic program analysis from execution in virtual environments. In Proceedings of the USENIX Technical Conference. 1--14."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508255"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1060289.1060309"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346256.1346273"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/68210.69226"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.26"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2009.18"},{"volume-title":"Proceedings of the USENIX Technical Conference. 1--15","author":"King S. T.","key":"e_1_2_1_18_1","unstructured":"King , S. T. , Dunlap , G. W. , and Chen , P. M . 2005. Debugging operating systems with time-traveling virtual machines . In Proceedings of the USENIX Technical Conference. 1--15 . King, S. T., Dunlap, G. W., and Chen, P. M. 2005. Debugging operating systems with time-traveling virtual machines. In Proceedings of the USENIX Technical Conference. 1--15."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1811039.1811057"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1987.1676929"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669182"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736031"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1815961.1815987"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/70082.68189"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.36"},{"volume-title":"Proceedings of the Symposium on Operating Systems Design and Implementation. 267--280","author":"Musuvathi M.","key":"e_1_2_1_26_1","unstructured":"Musuvathi , M. , Qadeer , S. , Ball , T. , Basler , G. , Nainar , P. A. , and Neamtiu , I . 2008. Finding and reproducing heisenbugs in concurrent programs . In Proceedings of the Symposium on Operating Systems Design and Implementation. 267--280 . Musuvathi, M., Qadeer, S., Ball, T., Basler, G., Nainar, P. A., and Neamtiu, I. 2008. Finding and reproducing heisenbugs in concurrent programs. In Proceedings of the Symposium on Operating Systems Design and Implementation. 267--280."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2005.16"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168886"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1140277.1140303"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/174266.174268"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095829"},{"volume-title":"Proceedings of the 7th Symposium on Operating Systems Design and Implementation. 1--14","author":"Nightingale E. B.","key":"e_1_2_1_32_1","unstructured":"Nightingale , E. B. , Veeraraghavan , K. , Chen , P. M. , and Flinn , J . 2006. Rethink the sync . In Proceedings of the 7th Symposium on Operating Systems Design and Implementation. 1--14 . Nightingale, E. B., Veeraraghavan, K., Chen, P. M., and Flinn, J. 2006. Rethink the sync. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation. 1--14."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346321"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508256"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/605397.605417"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629593"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1063786.1063789"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/378993.379247"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/312203.312214"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/231379.231432"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/319344.319159"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/223982.224451"},{"volume-title":"Proceedings of the USENIX Technical Conference. 29--44","author":"Srinivasan S.","key":"e_1_2_1_43_1","unstructured":"Srinivasan , S. , Andrews , C. , Kandula , S. , and Zhou , Y . 2004. Flashback: A light-weight extension for rollback and deterministic replay for software debugging . In Proceedings of the USENIX Technical Conference. 29--44 . Srinivasan, S., Andrews, C., Kandula, S., and Zhou, Y. 2004. Flashback: A light-weight extension for rollback and deterministic replay for software debugging. In Proceedings of the USENIX Technical Conference. 29--44."},{"volume-title":"Proceedings of the Symposium on High Performance Computer Architecture. 2--13","author":"Steffan J. G.","key":"e_1_2_1_44_1","unstructured":"Steffan , J. G. and Mowry , T. C . 1998. The potential for using thread-level data speculation to facilitate automatic parallelization . In Proceedings of the Symposium on High Performance Computer Architecture. 2--13 . Steffan, J. G. and Mowry, T. C. 1998. The potential for using thread-level data speculation to facilitate automatic parallelization. In Proceedings of the Symposium on High Performance Computer Architecture. 2--13."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1772954.1772974"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1294261.1294275"},{"volume-title":"Proceedings of the 8th USENIX Conference on File and Storage Technologies. 1--14","author":"Veeraraghavan K.","key":"e_1_2_1_47_1","unstructured":"Veeraraghavan , K. , Flinn , J. , Nightingale , E. B. , and Noble , B . 2010. quFiles: The right file at the right time . In Proceedings of the 8th USENIX Conference on File and Storage Technologies. 1--14 . Veeraraghavan, K., Flinn, J., Nightingale, E. B., and Noble, B. 2010. quFiles: The right file at the right time. In Proceedings of the 8th USENIX Conference on File and Storage Technologies. 1--14."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043590"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736051"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736039"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/223982.223990"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/859618.859633"},{"volume-title":"Proceedings of the Workshop on Modeling, Benchmarking and Simulation (MoBS).","author":"Xu M.","key":"e_1_2_1_53_1","unstructured":"Xu , M. , Malyugin , V. , Sheldon , J. , Venkitachalam , G. , and Weissman , B . 2007. ReTrace: Collecting execution trace with virtual machine deterministic replay . In Proceedings of the Workshop on Modeling, Benchmarking and Simulation (MoBS). Xu, M., Malyugin, V., Sheldon, J., Venkitachalam, G., and Weissman, B. 2007. ReTrace: Collecting execution trace with virtual machine deterministic replay. In Proceedings of the Workshop on Modeling, Benchmarking and Simulation (MoBS)."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755946"},{"volume-title":"Proceedings of the 35th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO). 85--96","author":"Zilles C.","key":"e_1_2_1_55_1","unstructured":"Zilles , C. and Sohi , G . 2002. Master\/slave speculative parallelization . In Proceedings of the 35th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO). 85--96 . Zilles, C. and Sohi, G. 2002. Master\/slave speculative parallelization. In Proceedings of the 35th Annual ACM\/IEEE International Symposium on Microarchitecture (MICRO). 85--96."}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2110356.2110359","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2110356.2110359","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T12:23:40Z","timestamp":1750249420000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2110356.2110359"}},"subtitle":["Parallelizing Sequential Logging and Replay"],"short-title":[],"issued":{"date-parts":[[2012,2]]},"references-count":55,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2012,2]]}},"alternative-id":["10.1145\/2110356.2110359"],"URL":"https:\/\/doi.org\/10.1145\/2110356.2110359","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"type":"print","value":"0734-2071"},{"type":"electronic","value":"1557-7333"}],"subject":[],"published":{"date-parts":[[2012,2]]},"assertion":[{"value":"2011-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2011-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}