The ROme OpTimistic Simulator
Project: Research and Development
The ROme OpTimistic Simulator is an x86-64 Open Source, multithreaded parallel and distributed simulation platform developed using C/POSIX technology. It transparently supports all the mechanisms associated with parallelization (e.g., mapping of simulation objects on different kernel instances) and optimistic synchronization (e.g., state recoverability).
The programming model supported by ROOT-Sim allows the simulation model developer to use a simple application-callback function named ProcessEvent() as the event handler, whose parameters determine which simulation object is currently taking control for processing its next event, and where the state of this object is located in memory. An object is a data structure, whose state can be scattered on dynamically allocated memory chunks, hence the memory address passed to the callback locates a top level data structure implementing the object state-layout.
ROOT-Sim’s development started as a research project late back in 1987. It is currently a joint project with the High Performance and Dependable Computing Systems group at the Dipartimento di Ingegneria Informatica, Automatica e Gestionale, Sapienza, University of Rome.
ROOT-Sim is general-purpose: its simple API allows to efficiently run models coming from a wide variety of fields, such as economy, medicine, biology, telecommunications, social sciences. When running several real-world applications, it has been shown to deliver superlinear speedups. (The following picture is taken from this paper.)