M U S E

The Miami University Simulation Environment (MUSE) is a general purpose parallel simulation framework. It is has been designed to ease development (programming) of parallel simulations -- yes, it requires programming skills in order to be used. If you are planning to use one of the examples/applications then you need to directly work with those examples rather than with the MUSE kernel. On the other hand, if you are planning to build an application using MUSE or if you are performing parallel simulation research then you will need to work with the MUSE kernel.

MUSE Overview MUSE Overview MUSE Overview MUSE Overview MUSE is an acronym for Miami University Simulation Environment. It has been developed in C++ using object-oriented approaches and the Message Passing Interface (MPI) library. MUSE uses Time Warp and standard state saving approach to accomplish optimistic synchronization of the LPs. A conceptual overview of a parallel simulation is shown in the adjacent figure. A MUSE simulation is organized as a set of Logical Processes (LPs) that interact with each other by exchanging virtual timestamped events. An LP is implemented as a C++ class by overriding necessary methods in an muse::Agent base class. The input, output, and state queues used for rollback operations in Time Warp are managed by the muse::Agent base class in coordination with the simulation kernel.

The MUSE simulation kernel implements core functionality associated with LP registration, event processing, state saving, synchronization, and Global Virtual Time (GVT) based garbage collection. The kernel also handles the task of interacting with MPI for exchanging events between the MPI-processes. The kernel uses a centralized Least Timestamp First (LTSF) scheduler queue for managing pending events and scheduling event processing for local LPs. LPs are permitted to generate events only into the future -- that is, the timestamp on events must be greater than their Local Virtual Time (LVT). Consequently, with a centralized LTSF scheduler, event exchanges between local LPs cannot cause rollbacks. Only events received via MPI can cause rollbacks in MUSE. The scheduler is designed to permit different data structures to be used for managing pending events. MUSE includes several different schedulers and data structures to enable efficient parallel simulations.

Licence

Miami University Simulation Environment (MUSE) is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation, either version 3 (GPL v3), or (at your option) a later version. See: https://www.gnu.org/licenses/gpl-3.0.en.html

MUSE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Miami University, PC2Lab, and the MUSE development team make no representations or warranties about the suitability of the software, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. Miami University and its affiliates shall not be liable for any damages suffered by the licensee as a result of using, modifying, or distributing this software or its derivatives.

By using or copying this Software, Licensee agree to abide by the intellectual property laws, and all other applicable laws of the U.S., and the terms of the GNU General Public License (version 3). You should have received a copy of the GNU General Public License along with MUSE. If not, you may download copies of GPL V3 from https://www.gnu.org/licenses/gpl-3.0.en.html.

Downloads

Latest release of MUSE

The latest (May 21 2017) public release of MUSE kernel (created for PADS'2017 conference publication) along with examples can be downloaded via: Download MUSE ».

Publications & Related Information

J. Higiro, M. Gebre, and D. M. Rao, "Multi-tier Priority Queues and 2-tier Ladder Queue for Managing Pending Events in Sequential and Optimistic Parallel Simulations", Proceedings of the ACM SIGSIM/PADS conference on Principles of advanced discrete simulation, Singapore, May 2017 (PDF, supplements, Presentation).