4th International ICST Conference on Simulation Tools and Techniques

Research Article

The ROme OpTimistic Simulator: Core Internals and Programming Model

Download278 downloads
  • @INPROCEEDINGS{10.4108/icst.simutools.2011.245551,
        author={Alessandro  Pellegrini and Roberto Vitali and Francesco Quaglia},
        title={The ROme OpTimistic Simulator: Core Internals and Programming Model},
        proceedings={4th International ICST Conference on Simulation Tools and Techniques},
        publisher={ICST},
        proceedings_a={SIMUTOOLS},
        year={2012},
        month={4},
        keywords={Parallel Discrete Event Simulation},
        doi={10.4108/icst.simutools.2011.245551}
    }
    
  • Alessandro Pellegrini
    Roberto Vitali
    Francesco Quaglia
    Year: 2012
    The ROme OpTimistic Simulator: Core Internals and Programming Model
    SIMUTOOLS
    ICST
    DOI: 10.4108/icst.simutools.2011.245551
Alessandro Pellegrini1, Roberto Vitali1, Francesco Quaglia1,*
  • 1: DIS - Sapienza Universita' di Roma
*Contact email: quaglia@dis.uniroma1.it

Abstract

In this article we overview the ROme OpTimistic Simulator (ROOT-Sim), an open source C/MPI-based simulation package targeted at POSIX systems, which implements a general-purpose parallel/distributed simulation environment relying on the optimistic (i.e., rollback-based) synchronization paradigm. It offers a very simple programming model based on the classical notion of simulation-event handlers, to be implemented according to the ANSI-C standard, and transparently supports all the services required to parallelize the execution. It also offers a set of optimized protocols (e.g., CPU scheduling and state log/restore protocols) aimed at minimizing the run-time overhead of the platform, thus allowing for high performance and scalability. Here we overview the core internal mechanisms provided by ROOT-Sim, together with the offered API and the programming model that is expected to be agreed in order to produce simulation software that can be transparently run, in a concurrent fashion, on top of the ROOT-Sim layer.