ACM Transactions on Programming Languages and Systems (TOPLAS)
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Calendar queues: a fast 0(1) priority queue implementation for the simulation event set problem
Communications of the ACM
Parallel discrete event simulation
Communications of the ACM - Special issue on simulation
GTW: a time warp system for shared memory multiprocessors
WSC '94 Proceedings of the 26th conference on Winter simulation
Automatic incremental state saving
PADS '96 Proceedings of the tenth workshop on Parallel and distributed simulation
State saving for interactive optimistic simulation
Proceedings of the eleventh workshop on Parallel and distributed simulation
Efficient optimistic parallel simulations using reverse computation
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Space/time trade-offs in hash coding with allowable errors
Communications of the ACM
A survey of rollback-recovery protocols in message-passing systems
ACM Computing Surveys (CSUR)
WARPED: A Time Warp Simulation Kernel for Analysis and Application Development
HICSS '96 Proceedings of the 29th Hawaii International Conference on System Sciences Volume 1: Software Technology and Architecture
Irrevocable transactions and their applications
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Autonomic Log/Restore for Advanced Optimistic Simulation Systems
MASCOTS '10 Proceedings of the 2010 IEEE International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems
Operating system support for application-specific speculation
Proceedings of the sixth conference on Computer systems
The ROme OpTimistic Simulator: core internals and programming model
Proceedings of the 4th International ICST Conference on Simulation Tools and Techniques
IEEE Transactions on Wireless Communications
Towards Symmetric Multi-threaded Optimistic Simulation Kernels
PADS '12 Proceedings of the 2012 ACM/IEEE/SCS 26th Workshop on Principles of Advanced and Distributed Simulation
Transparent and Efficient Shared-State Management for Optimistic Simulations on Multi-core Machines
MASCOTS '12 Proceedings of the 2012 IEEE 20th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems
Transparent optimistic synchronization in the high-level architecture via time-management conversion
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Hi-index | 0.00 |
Optimistic synchronization is considered an effective means for supporting Parallel Discrete Event Simulations. It relies on a speculative approach, where concurrent processes execute simulation events regardless of their safety, and consistency is ensured via proper rollback mechanisms, upon the a-posteriori detection of causal inconsistencies along the events' execution path. Interactions with the outside world (e.g. generation of output streams) are a well-known problem for rollback-based systems, since the outside world may have no notion of rollback. In this context, approaches for allowing the simulation modeler to generate consistent output rely on either the usage of ad-hoc APIs (which must be provided by the underlying simulation kernel) or temporary suspension of processing activities in order to wait for the final outcome (commit/rollback) associated with a speculatively-produced output. In this paper we present design indications and a reference implementation for an output streams' management subsystem which allows the simulation-model writer to rely on standard output-generation libraries (e.g. stdio) within code blocks associated with event processing. Further, the subsystem ensures that the produced output is consistent, namely associated with events that are eventually committed, and system-wide ordered along the simulation time axis. The above features jointly provide the illusion of a classical (simple to deal with) sequential programming model, which spares the developer from being aware that the simulation program is run concurrently and speculatively. We also show, via an experimental study, how the design/development optimizations we present lead to limited overhead, giving rise to the situation where the simulation run would have been carried out with near-to-zero or reduced output management cost. At the same time, the delay for materializing the output stream (making it available for any type of audit activity) is shown to be fairly limited and constant, especially for good mixtures of I/O-bound vs CPU-bound behaviors at the application level. Further, the whole output streams' management subsystem has been designed in order to provide scalability for I/O management on clusters.