{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,8]],"date-time":"2025-12-08T22:41:42Z","timestamp":1765233702182,"version":"3.41.0"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2024,11,25]],"date-time":"2024-11-25T00:00:00Z","timestamp":1732492800000},"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":[[2025,1,31]]},"abstract":"<jats:p>Shared-memory multi-processor\/multi-core machines have become a reference for many application contexts. In particular, the recent literature on speculative parallel discrete event simulation has reshuffled the architectural organization of simulation systems in order to deeply exploit the main features of this type of machine. A core aspect dealt with has been the full sharing of the workload at the level of individual simulation events, which enables keeping the rollback incidence minimal. However, making each worker thread continuously switch its execution between events destined to different simulation objects does not favor locality. This problem appears even more evident in the case of Non-Uniform-Memory-Access (NUMA) machines, in which memory accesses generating a cache miss to be served by a far NUMA node give rise to both higher latency and higher traffic at the level of the NUMA interconnection. In this article, we propose a workload-sharing algorithm in which the worker threads can have short-term binding with specific simulation objects to favor spatial locality. The new bindings\u2014carried out when a thread decides to switch its execution to other simulation objects\u2014are based on both (a) the timeline according to which the object states have passed through the caching hierarchy and (b) the (dynamic) placement of objects within the NUMA architecture. At the same time, our solution still enables the worker threads to focus their activities on the events to be processed whose timestamps are closer to the simulation commit horizon\u2014hence, we exploit temporal locality along virtual time and keep the rollback incidence minimal. In our design, we exploit lock-free constructs to support scalable thread synchronization while accessing the shared event pool. Furthermore, we exploit a multi-view approach of the event pool content, which additionally favors local accesses to the parts of the event pool that are currently relevant for the thread activity. Our solution has been released as an integration within the USE (Ultimate-Share-Everything) open-source speculative simulation platform available to the community. Furthermore, in this article we report the results of an experimental study that shows the effectiveness of our proposal.<\/jats:p>","DOI":"10.1145\/3639703","type":"journal-article","created":{"date-parts":[[2024,1,8]],"date-time":"2024-01-08T21:50:54Z","timestamp":1704750654000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Spatial\/Temporal Locality-Based Load-sharing in Speculative Discrete Event Simulation on Multi-core Machines"],"prefix":"10.1145","volume":"35","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9875-6601","authenticated-orcid":false,"given":"Federica","family":"Montesano","sequence":"first","affiliation":[{"name":"University of Rome \u201cTor Vergata\u201d, Roma, Italy"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7589-9274","authenticated-orcid":false,"given":"Romolo","family":"Marotta","sequence":"additional","affiliation":[{"name":"University of Rome \u201cTor Vergata\u201d, Italy and Centro Nazionale di Ricerca in High Performance Computing, Big Data and Quantum Computing, Roma, Italy"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5616-7980","authenticated-orcid":false,"given":"Francesco","family":"Quaglia","sequence":"additional","affiliation":[{"name":"University of Rome \u201cTor Vergata\u201d, Roma, Italy"}]}],"member":"320","published-online":{"date-parts":[[2024,11,25]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/2486092.2486133"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4330060204"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/71.841745"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/347823.347828"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/324898.325340"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.2011.5936752"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/3077583"},{"key":"e_1_3_2_9_2","article-title":"Discrete-variable extremum problems","volume":"5","author":"Dantzig George","year":"1957","unstructured":"George Dantzig. 1957. Discrete-variable extremum problems. Operational Research 5 (1957).","journal-title":"Operational Research"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/256563.256833"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/240896.240913"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/2486092.2486106"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/1400751.1400769"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1997.594589"},{"key":"e_1_3_2_15_2","volume-title":"Architectural Support for Large-scale Shared Memory Systems","author":"Fu Yaosheng","year":"2017","unstructured":"Yaosheng Fu. 2017. Architectural Support for Large-scale Shared Memory Systems. Ph.D. Dissertation. Princeton University. https:\/\/dataspace.princeton.edu\/handle\/88435\/dsp01pv63g290r"},{"key":"e_1_3_2_16_2","first-page":"242","volume-title":"Proceedings of the International Conference on Parallel Processing, ICPP\u201989, The Pennsylvania State University, University Park, PA, USA, August 1989. Volume 3: Algorithms and Applications","author":"Fujimoto Richard","year":"1989","unstructured":"Richard Fujimoto. 1989. Time warp on a shared memory multiprocessor. In Proceedings of the International Conference on Parallel Processing, ICPP\u201989, The Pennsylvania State University, University Park, PA, USA, August 1989. Volume 3: Algorithms and Applications. Pennsylvania State University Press, USA, 242\u2013249."},{"key":"e_1_3_2_17_2","first-page":"23","volume-title":"Proceedings of the Multiconference on Distributed Simulation","author":"Fujimoto Richard M.","year":"1990","unstructured":"Richard M. Fujimoto. 1990. Performance of time warp under synthetic workloads. In Proceedings of the Multiconference on Distributed Simulation. Society for Computer Simulation, USA, 23\u201328."},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/268403.268404"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/214282.214330"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/71.210814"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/2601381.2601393"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/2769458.2769462"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1810479.1810509"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/3200921.3200931"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3916.3988"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/7693.975444"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-03850-6_15"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3064911.3064926"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/103727.103729"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/WSC.2015.7408254"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3518997.3531026"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7342950"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/GLSV.1993.224467"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/SBAC-PAD.2014.38"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/2769458.2769479"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2019.05.003"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/189443.189444"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1998.685272"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.simpat.2015.01.009"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/643114.643115"},{"key":"e_1_3_2_41_2","series-title":"DS-RT\u201920","first-page":"59","volume-title":"Proceedings of the IEEE\/ACM 24th International Symposium on Distributed Simulation and Real Time Applications","author":"Rab Maryan","year":"2021","unstructured":"Maryan Rab, Romolo Marotta, Mauro Ianni, Alessandro Pellegrini, and Francesco Quaglia. 2021. NUMA-aware non-blocking calendar queue. In Proceedings of the IEEE\/ACM 24th International Symposium on Distributed Simulation and Real Time Applications (Prague, Czech Republic) (DS-RT\u201920). IEEE Press, USA, 59\u201367."},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3265750"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/2699414"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1177\/003754976600700213"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1996.761564"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/WSC.2018.8632333"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-018-0038-2"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2021.3139463"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/280265.280267"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.2012.3"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3364218"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/1103323.1103324"},{"key":"e_1_3_2_53_2","volume-title":"Systems Programming: Coping with Parallelism","author":"Treiber R. Kent","year":"1986","unstructured":"R. Kent Treiber. 1986. Systems Programming: Coping with Parallelism. Technical Report. IBM, Inc., Thomas J. Watson Research."},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.4108\/icst.simutools.2012.247766"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/2425248.2425250"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.2012.46"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2013.193"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1109\/PADS.1995.404296"}],"container-title":["ACM Transactions on Modeling and Computer Simulation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3639703","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3639703","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T00:03:49Z","timestamp":1750291429000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3639703"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,11,25]]},"references-count":57,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2025,1,31]]}},"alternative-id":["10.1145\/3639703"],"URL":"https:\/\/doi.org\/10.1145\/3639703","relation":{},"ISSN":["1049-3301","1558-1195"],"issn-type":[{"type":"print","value":"1049-3301"},{"type":"electronic","value":"1558-1195"}],"subject":[],"published":{"date-parts":[[2024,11,25]]},"assertion":[{"value":"2022-11-21","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-12-07","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-11-25","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}