Article ID: | iaor20126852 |
Volume: | 6 |
Issue: | 4 |
Start Page Number: | 279 |
End Page Number: | 293 |
Publication Date: | Nov 2012 |
Journal: | Journal of Simulation |
Authors: | Peluso S, Didona D, Quaglia F |
Keywords: | computational analysis: parallel computers, computers: data-structure |
It is well known that Parallel Discrete Event Simulation systems may suffer, in terms of delivered performance, from imbalance of the computational load. In case of conservative synchronization we may experience CPU under‐utilization and/or excessive communication overhead. On the other hand, for the optimistic paradigm we may even have rollback thrashing effects, with a consequent reduction of the percentage of productive (ie not rolled back) work carried out. This paper presents the design of a global memory management architecture supporting application‐transparent migration of simulation objects whose state is scattered across dynamically allocated memory chunks. Our approach is based on a non‐intrusive background protocol that provides each instance of the simulation kernel with information on the current mapping of the virtual address space of all the other instances. Dynamic memory requests by the application layer are then locally mapped onto virtual‐address ranges that maximize the likelihood of being portable onto the address space of a remote kernel instance. In this way, independently of the load‐balancing trigger (or policy), we maximize the likelihood that a desirable migration across a specific couple of kernels can actually take place due to compliance of the corresponding source/destination address spaces. We have integrated the global memory manager within the ROme OpTimistic Simulator (ROOT‐Sim), namely a run‐time environment based on the optimistic synchronization paradigm which automatically and transparently parallelizes the execution of event‐handler‐based simulation programs conforming to ANSI‐C. Further, we provide a contribution in the direction of widening load‐balancing schemes for optimistic simulation systems by defining migration triggers and selection policies for the objects to be migrated on the basis of memory usage patterns. An experimental assessment of the architecture and of memory‐oriented load balancing is also provided.