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 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
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.
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.
Latest release of MUSE
The latest (June 5 2018) public release of MUSE kernel (created after PADS'2018 conference publication) along with examples can be downloaded via: Download MUSE ».
Previous release of MUSE
The previous (May 21 2017) public release of MUSE kernel (created for PADS'2017 conference publication) along with examples can be downloaded via: May 21 2017 release.
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).