{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,24]],"date-time":"2026-01-24T17:55:45Z","timestamp":1769277345870,"version":"3.49.0"},"publisher-location":"Cham","reference-count":19,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030473600","type":"print"},{"value":"9783030473617","type":"electronic"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,5,12]],"date-time":"2020-05-12T00:00:00Z","timestamp":1589241600000},"content-version":"vor","delay-in-days":132,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>\nOptimistic parallel discrete event simulation (PDES) requires to do a distributed rollback if conflicts are detected during a simulation due to the massively parallel optimistic execution approach. When a rollback of a simulation is performed each node that is determined to be in a wrong state must be restored to one of its previous states. This can be achieved through reverse computation or by restoring a previous checkpoint. In this paper we investigate and compare both approaches, reverse computation and a variant of checkpointing, incremental state saving (also called incremental checkpointing), to restore a previous program state as part of an optimistic parallel discrete event simulation. We present a benchmark model that is specifically designed for evaluating the performance of approaches to reversibility in PDES. Our benchmarking model has mathematical properties that allow to tune the amount of arithmetic operations relative to the amount of memory operations. These tuning opportunities are the basis for our systematic performance evaluation.<\/jats:p>","DOI":"10.1007\/978-3-030-47361-7_9","type":"book-chapter","created":{"date-parts":[[2020,5,13]],"date-time":"2020-05-13T15:10:54Z","timestamp":1589382654000},"page":"187-207","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Reversible Languages and Incremental State Saving in Optimistic Parallel Discrete Event Simulation"],"prefix":"10.1007","author":[{"given":"Markus","family":"Schordan","sequence":"first","affiliation":[]},{"given":"Tomas","family":"Oppelstrup","sequence":"additional","affiliation":[]},{"given":"Michael Kirkedal","family":"Thomsen","sequence":"additional","affiliation":[]},{"given":"Robert","family":"Gl\u00fcck","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,5,12]]},"reference":[{"key":"9_CR1","volume-title":"Parallel and Distribution Simulation Systems","author":"RM Fujimoto","year":"1999","unstructured":"Fujimoto, R.M.: Parallel and Distribution Simulation Systems, 1st edn. Wiley, New York (1999)","edition":"1"},{"issue":"4","key":"9_CR2","doi-asserted-by":"publisher","first-page":"1766","DOI":"10.1016\/j.jcp.2011.11.004","volume":"231","author":"Y Omelchenko","year":"2012","unstructured":"Omelchenko, Y., Karimabadi, H.: Hypers: A unidimensional asynchronous framework for multiscale hybrid simulations. J. Comp. Phys. 231(4), 1766\u20131780 (2012)","journal-title":"J. Comp. Phys."},{"issue":"3","key":"9_CR3","doi-asserted-by":"publisher","first-page":"404","DOI":"10.1145\/3916.3988","volume":"7","author":"DR Jefferson","year":"1985","unstructured":"Jefferson, D.R.: Virtual time. ACM Trans. Program. Lang. Syst. 7(3), 404\u2013425 (1985)","journal-title":"ACM Trans. Program. Lang. Syst."},{"issue":"3","key":"9_CR4","doi-asserted-by":"publisher","first-page":"224","DOI":"10.1145\/347823.347828","volume":"9","author":"CD Carothers","year":"1999","unstructured":"Carothers, C.D., Perumalla, K.S., Fujimoto, R.M.: Efficient optimistic parallel simulations using reverse computation. ACM Trans. Model. Comput. Simul. 9(3), 224\u2013253 (1999)","journal-title":"ACM Trans. Model. Comput. Simul."},{"key":"9_CR5","doi-asserted-by":"publisher","DOI":"10.1201\/b15719","volume-title":"Introduction to Reversible Computing","author":"KS Perumalla","year":"2013","unstructured":"Perumalla, K.S.: Introduction to Reversible Computing. CRC Press Book, Boca Raton (2013)"},{"key":"9_CR6","doi-asserted-by":"crossref","unstructured":"Yokoyama, T., Gl\u00fcck, R.: A reversible programming language and its invertible self-interpreter. In: Ramalingam, G., Visser, E. (eds.) Proceedings of the 2007 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2007, Nice, France, 15\u201316 January 2007, pp. 144\u2013153. ACM (2007)","DOI":"10.1145\/1244381.1244404"},{"issue":"3","key":"9_CR7","doi-asserted-by":"publisher","first-page":"257","DOI":"10.1007\/s00354-018-0038-2","volume":"36","author":"M Schordan","year":"2018","unstructured":"Schordan, M., Oppelstrup, T., Jefferson, D.R., Barnes Jr., P.D.: Generation of reversible C++ code for optimistic parallel discrete event simulation. New Generat. Comput. 36(3), 257\u2013280 (2018)","journal-title":"New Generat. Comput."},{"key":"9_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"258","DOI":"10.1007\/978-3-540-70583-3_22","volume-title":"Automata, Languages and Programming","author":"T Yokoyama","year":"2008","unstructured":"Yokoyama, T., Axelsen, H.B., Gl\u00fcck, R.: Reversible flowchart languages and the structured reversible program theorem. In: Aceto, L., Damg\u00e5rd, I., Goldberg, L.A., Halld\u00f3rsson, M.M., Ing\u00f3lfsd\u00f3ttir, A., Walukiewicz, I. (eds.) ICALP 2008. LNCS, vol. 5126, pp. 258\u2013270. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-70583-3_22"},{"key":"9_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"95","DOI":"10.1007\/978-3-319-20860-2_6","volume-title":"Reversible Computation","author":"M Schordan","year":"2015","unstructured":"Schordan, M., Jefferson, D., Barnes, P., Oppelstrup, T., Quinlan, D.: Reverse code generation for parallel discrete event simulation. In: Krivine, J., Stefani, J.-B. (eds.) RC 2015. LNCS, vol. 9138, pp. 95\u2013110. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-20860-2_6"},{"key":"9_CR10","doi-asserted-by":"crossref","unstructured":"Schordan, M., Oppelstrup, T., Jefferson, D., Barnes, Jr., P.D., Quinlan, D.: Automatic generation of reversible C++ code and its performance in a scalable kinetic Monte-Carlo application. In: Proceedings of the 2016 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. SIGSIM-PADS 2016, pp. 111\u2013122. ACM (2016)","DOI":"10.1145\/2901378.2901394"},{"key":"9_CR11","unstructured":"Holder, A.O., Carothers, C.D.: Analysis of time warp on a 32,768 processor IBM Blue Gene\/L supercomputer. In: Bruzzone, A., Longo, F., Piera, M.A., Aguilar, R.M., Frydman, C. (eds.) Proceedings of the European Modeling and Simulation Symposium (EMSS), pp. 284\u2013292 (2008)"},{"key":"9_CR12","doi-asserted-by":"crossref","unstructured":"Barnes, Jr., P.D., Carothers, C.D., Jefferson, D.R., LaPre, J.M.: Warp speed: executing time warp on 1,966,080 cores. In: Proceedings of the 2013 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. SIGSIM-PADS 2013, pp. 327\u2013336. ACM (2013)","DOI":"10.1145\/2486092.2486134"},{"issue":"2","key":"9_CR13","doi-asserted-by":"publisher","first-page":"303","DOI":"10.1007\/s10586-013-0277-4","volume":"17","author":"KS Perumalla","year":"2013","unstructured":"Perumalla, K.S., Park, A.J.: Reverse computation for rollback-based fault tolerance in large parallel systems. Cluster Comput. 17(2), 303\u2013313 (2013). https:\/\/doi.org\/10.1007\/s10586-013-0277-4","journal-title":"Cluster Comput."},{"key":"9_CR14","doi-asserted-by":"crossref","unstructured":"LaPre, J.M., Gonsiorowski, E.J., Carothers, C.D.: LORAIN: a step closer to the PDES \"holy grail\". In: Proceedings of the 2nd ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. SIGSIM-PADS 2014, pp. 3\u201314. ACM (2014)","DOI":"10.1145\/2601381.2601397"},{"key":"9_CR15","doi-asserted-by":"crossref","unstructured":"Vulov, G., Hou, C., Vuduc, R., Fujimoto, R., Quinlan, D., Jefferson, D.: The Backstroke framework for source level reverse computation applied to parallel discrete event simulation. In: Proceedings of the Winter Simulation Conference. WSC 2011, Winter Simulation Conference, pp. 2965\u20132979 (2011)","DOI":"10.1109\/WSC.2011.6147998"},{"issue":"6","key":"9_CR16","doi-asserted-by":"publisher","first-page":"1560","DOI":"10.1109\/TPDS.2014.2323967","volume":"26","author":"A Pellegrini","year":"2015","unstructured":"Pellegrini, A., Vitali, R., Quaglia, F.: Autonomic state management for optimistic simulation platforms. IEEE Trans. Parallel Distrib. Syst. 26(6), 1560\u20131569 (2015)","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"9_CR17","doi-asserted-by":"crossref","unstructured":"Cingolani, D., Pellegrini, A., Quaglia, F.: Transparently mixing undo logs and software reversibility for state recovery in optimistic PDES. In: Proceedings of the 3rd ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. SIGSIM PADS 2015, pp. 211\u2013222. ACM (2015)","DOI":"10.1145\/2769458.2769482"},{"key":"9_CR18","doi-asserted-by":"crossref","unstructured":"Pellegrini, A.: Hijacker: Efficient static software instrumentation with applications in high performance computing: poster paper. In: International Conference on High Performance Computing and Simulation (HPCS), pp. 650\u2013655. (2013)","DOI":"10.1109\/HPCSim.2013.6641486"},{"key":"9_CR19","doi-asserted-by":"crossref","unstructured":"Santini, E., Ianni, M., Pellegrini, A., Quaglia, F.: Hardware-transactional-memory based speculative parallel discrete event simulation of very fine grain models. In: IEEE 22nd International Conference on High Performance Computing (HiPC), pp. 145\u2013154 (2015)","DOI":"10.1109\/HiPC.2015.45"}],"container-title":["Lecture Notes in Computer Science","Reversible Computation: Extending Horizons of Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-47361-7_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,7,3]],"date-time":"2024-07-03T10:04:41Z","timestamp":1720001081000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-47361-7_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030473600","9783030473617"],"references-count":19,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-47361-7_9","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"12 May 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}