{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,24]],"date-time":"2025-06-24T15:47:46Z","timestamp":1750780066931,"version":"3.41.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2017,4,30]],"date-time":"2017-04-30T00:00:00Z","timestamp":1493510400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Model. Comput. Simul."],"published-print":{"date-parts":[[2017,4,30]]},"abstract":"<jats:p>\n            The Time Warp synchronization protocol for Parallel Discrete Event Simulation (PDES) is universally considered a viable solution to exploit the intrinsic simulation model parallelism and to provide model execution speedup. Yet it leads the PDES system to execute events in an order that may generate causal inconsistencies that need to be recovered via\n            <jats:italic>rollback<\/jats:italic>\n            , which requires restoration of a previous (consistent) simulation state whenever a causality violation is detected. The rollback operation is so critical for the performance of a Time Warp system that it has been extensively studied in the literature for decades to find approaches suitable to optimize it. The proposed solutions can be roughly classified as based on either\n            <jats:italic>checkpointing<\/jats:italic>\n            or\n            <jats:italic>reverse computing<\/jats:italic>\n            . In this article, we explore the practical design and implementation of a fully new approach based on the runtime generation of so-called\n            <jats:italic>undo code blocks<\/jats:italic>\n            , which are blocks of instructions implementing the reverse memory side effects generated by the forward execution of the events. However, this is not done by recomputing the original values to be restored, as instead it occurs in reverse computing schemes. Hence, the philosophy undo code blocks rely on is similar in spirit to that of undo-logs (as a form of checkpointing). Nevertheless, they are not data logs (as instead checkpoints are); rather, they are logs of instructions. Our proposal is fully transparent, thanks to the reliance on static software instrumentation (targeting the x86 architecture and Linux systems). Also, as we show, it can be combined with classical checkpointing to further improve the runtime behavior of the state recoverability support as a function of the workload. We also present experimental results related to our implementation, which is released as free software and fully integrated into the open source ROOT-Sim package. Experimental data support the viability and effectiveness of our proposal.\n          <\/jats:p>","DOI":"10.1145\/3077583","type":"journal-article","created":{"date-parts":[[2017,5,31]],"date-time":"2017-05-31T19:32:40Z","timestamp":1496259160000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":25,"title":["Transparently Mixing Undo Logs and Software Reversibility for State Recovery in Optimistic PDES"],"prefix":"10.1145","volume":"27","author":[{"given":"Davide","family":"Cingolani","sequence":"first","affiliation":[{"name":"Sapienza University of Rome, Roma, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alessandro","family":"Pellegrini","sequence":"additional","affiliation":[{"name":"Sapienza University of Rome, Roma, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Francesco","family":"Quaglia","sequence":"additional","affiliation":[{"name":"Sapienza University of Rome, Roma, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,5,27]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"The GNU Project Debugger","author":"GDB","year":"2017","unstructured":"GDB : The GNU Project Debugger . 2017 . Retrieved from http:\/\/www.gnu.org\/software\/gdb\/. GDB: The GNU Project Debugger. 2017. Retrieved from http:\/\/www.gnu.org\/software\/gdb\/."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/358438.349303"},{"key":"e_1_2_2_3_1","volume-title":"Proceedings of the 6th Workshop on Parallel and Distributed Simulation (PADS\u201992)","author":"Bellenot S.","year":"1992","unstructured":"S. Bellenot . 1992 . State skipping performance with the Time Warp operating system . In Proceedings of the 6th Workshop on Parallel and Distributed Simulation (PADS\u201992) . 53--64. S. Bellenot. 1992. State skipping performance with the Time Warp operating system. In Proceedings of the 6th Workshop on Parallel and Distributed Simulation (PADS\u201992). 53--64."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/312009.312079"},{"key":"e_1_2_2_5_1","volume-title":"Proceedings of the USENIX","author":"Bonwick J.","year":"1994","unstructured":"J. Bonwick . 1994 . The slab allocator: An object-caching kernel memory allocator . In Proceedings of the USENIX Summer 1994 Technical Conference. 6. J. Bonwick. 1994. The slab allocator: An object-caching kernel memory allocator. In Proceedings of the USENIX Summer 1994 Technical Conference. 6."},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/347823.347828"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(01)00081-3"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/WSC.1994.717527"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1995.404317"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1997.594589"},{"key":"e_1_2_2_12_1","volume-title":"Proceedings of the Multiconf. on Distributed Simulation. Society for Computer Simulation, 23--28","author":"Fujimoto R. M.","year":"1990","unstructured":"R. M. Fujimoto . 1990 . Performance of Time Warp Under Synthetic Workloads . In Proceedings of the Multiconf. on Distributed Simulation. Society for Computer Simulation, 23--28 . R. M. Fujimoto. 1990. Performance of Time Warp Under Synthetic Workloads. In Proceedings of the Multiconf. on Distributed Simulation. Society for Computer Simulation, 23--28."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.123382"},{"key":"e_1_2_2_14_1","doi-asserted-by":"crossref","unstructured":"C. Hou G. Vulov D. Quinlan D. Jefferson R. Fujimoto and R. Vuduc. 2012a. A New Method for Program Inversion. Springer Berlin 81--100.  C. Hou G. Vulov D. Quinlan D. Jefferson R. Fujimoto and R. Vuduc. 2012a. A New Method for Program Inversion. Springer Berlin 81--100.","DOI":"10.1007\/978-3-642-28652-0_5"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28652-0_5"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/3916.3988"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/7693.975444"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2601381.2601397"},{"key":"e_1_2_2_19_1","unstructured":"D. Lea. 1996. A Memory Allocator. Retrieved from http:\/\/g.oswego.edu\/dl\/html\/malloc.html.  D. Lea. 1996. A Memory Allocator. Retrieved from http:\/\/g.oswego.edu\/dl\/html\/malloc.html."},{"key":"e_1_2_2_20_1","volume-title":"Technical Report 90-02-03.","author":"Lin Y.-B.","year":"1990","unstructured":"Y.-B. Lin and E. D. Lazowska . 1990 . Reducing the Saving Overhead for Time Warp Parallel Simulation. University of Washington Department of Computer Science and Engineering . Technical Report 90-02-03. Y.-B. Lin and E. D. Lazowska. 1990. Reducing the Saving Overhead for Time Warp Parallel Simulation. University of Washington Department of Computer Science and Engineering. Technical Report 90-02-03."},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/158459.158475"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCSim.2013.6641486"},{"volume-title":"Parallelization of Discrete Event Simulation Models. Sapienza Universit\u00e0 Editrice","author":"Pellegrini A.","key":"e_1_2_2_23_1","unstructured":"A. Pellegrini . 2015. Parallelization of Discrete Event Simulation Models. Sapienza Universit\u00e0 Editrice , Rome, Italy . A. Pellegrini. 2015. Parallelization of Discrete Event Simulation Models. Sapienza Universit\u00e0 Editrice, Rome, Italy."},{"volume-title":"Proceedings of the 1st Workshop on Parallel and Distributed Agent-Based Simulations (PADABS\u201913)","author":"Pellegrini A.","key":"e_1_2_2_24_1","unstructured":"A. Pellegrini and F. Quaglia . 2013. The ROme OpTimistic Simulator: A Tutorial . In Proceedings of the 1st Workshop on Parallel and Distributed Agent-Based Simulations (PADABS\u201913) . LNCS. Springer-Verlag. A. Pellegrini and F. Quaglia. 2013. The ROme OpTimistic Simulator: A Tutorial. In Proceedings of the 1st Workshop on Parallel and Distributed Agent-Based Simulations (PADABS\u201913). LNCS. Springer-Verlag."},{"volume-title":"Proceedings - Workshop on Principles of Advanced and Distributed Simulation (PADS\u201909)","author":"Pellegrini A.","key":"e_1_2_2_25_1","unstructured":"A. Pellegrini , R. Vitali , and F. Quaglia . 2009. Di-DyMeLoR: Logging only dirty chunks for efficient management of dynamic memory based optimistic simulation objects . In Proceedings - Workshop on Principles of Advanced and Distributed Simulation (PADS\u201909) . IEEE, 45--53. A. Pellegrini, R. Vitali, and F. Quaglia. 2009. Di-DyMeLoR: Logging only dirty chunks for efficient management of dynamic memory based optimistic simulation objects. In Proceedings - Workshop on Principles of Advanced and Distributed Simulation (PADS\u201909). IEEE, 45--53."},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2014.2323967"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/359605.359626"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/189443.189444"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.29"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.920586"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2003.1206506"},{"volume-title":"Simulation: The Practice of Model Development and Use","author":"Robinson S.","key":"e_1_2_2_32_1","unstructured":"S. Robinson . 2004. Simulation: The Practice of Model Development and Use . John Wiley 8 Sons. S. Robinson. 2004. Simulation: The Practice of Model Development and Use. John Wiley 8 Sons."},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/182478.182577"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1996.761564"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-20860-2_6"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043635.2043639"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/256562.256779"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.730524"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/192537.192541"},{"key":"e_1_2_2_40_1","article-title":"SPEEDES: A Multiple-Synchronization Environment for Parallel Discrete Event","author":"Steinman J. S.","year":"1992","unstructured":"J. S. Steinman . 1992 . SPEEDES: A Multiple-Synchronization Environment for Parallel Discrete Event Simulation. Int. J. Comput. 251--286. J. S. Steinman. 1992. SPEEDES: A Multiple-Synchronization Environment for Parallel Discrete Event Simulation. Int. J. Comput. 251--286.","journal-title":"Simulation. Int. J. Comput. 251--286."},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/256563.256816"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.2008.23"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155091"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1996.761565"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78791-4_10"}],"container-title":["ACM Transactions on Modeling and Computer Simulation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3077583","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3077583","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:36:49Z","timestamp":1750217809000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3077583"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,4,30]]},"references-count":44,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2017,4,30]]}},"alternative-id":["10.1145\/3077583"],"URL":"https:\/\/doi.org\/10.1145\/3077583","relation":{},"ISSN":["1049-3301","1558-1195"],"issn-type":[{"type":"print","value":"1049-3301"},{"type":"electronic","value":"1558-1195"}],"subject":[],"published":{"date-parts":[[2017,4,30]]},"assertion":[{"value":"2015-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-05-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}