SimSo - Simulation of Multiprocessor Scheduling with Overheads

SimSo is a scheduling simulator for real-time multiprocessor architectures that takes into account some scheduling overheads (scheduling decisions, context switches) and the impact of caches through statistical models. Based on a Discrete-Event Simulator (SimPy), it allows quick simulations and a fast prototyping of scheduling policies using Python. Currently, more than 25 popular schedulers are available.

News (Sept. 2015): SimsoWeb a full browser interface for SimSo

SimSoWeb provides a simple and intuitive graphical interface that aims at helping you discover the core features of Simso (more details).

Documentation

You can access the documentation here: Documentation of SimSo. You will find tutorials that should help you to start.

Feel free to send me an email if you seek assistance to get started: maxime.cheramy@laas.fr

Download

Since SimSo 0.7 (April 2015), SimSo is divided in 2 components: the core and the graphical user interface.

If you have Python installed (and PyQt4 for the GUI), you can install simso using the tool pip: pip install simso simsogui. This has the advantage to work on Linux, Mac OS and Windows.

The source code can also be found on PyPI and GitHub:

For Windows users that don't want to install Python and PyQt, you can install SimSo with:

Please read the documentation for help regarding the installation.

SimSoWeb

SimsoWeb is a full browser interface for SimSo. It provides a simple and intuitive graphical interface that aims at helping you discover the core features of Simso. It runs as a full-client application (no server-side) written in javascript, and uses PypyJS (a javascript implementation of Pypy) to run Python in order to execute SimSo.

To use SimSoWeb you have only to download it in your browser (download could take few seconds, please be patient)

This version is compatible with most recent web browsers with support of HTML5 and CSS3. The code of the project and documentation are available on GitHub:

Publications

How to cite:

@inproceedings{cheramy2014, Author = {Ch\'eramy, Maxime and Hladik, Pierre-Emmanuel and D\'eplanche, Anne-Marie}, Booktitle = {Proc. of the 5th International Workshop on Analysis Tools and Methodologies for Embedded and Real-time Systems}, Series = {WATERS}, Title = {SimSo: A Simulation Tool to Evaluate Real-Time Multiprocessor Scheduling Algorithms}, Year = {2014}}

The general presentation of the tool can be found in the following paper published at WATERS:
  • SimSo: A Simulation Tool to Evaluate Real-Time Multiprocessor Scheduling Algorithms
    Maxime Chéramy, Pierre-Emmanuel Hladik and Anne-Marie Déplanche. In proceedings of the 5th International Workshop on Analysis Tools and Methodologies for Embedded and Real-time Systems (WATERS). July 2014. (slides, poster)
The use of the WCET in the simulation was discussed at SIES 2014 during the WiP session:
  • Simulation of real-time scheduling with various execution time models
    Maxime Chéramy, Pierre-Emmanuel Hladik, Anne-Marie Déplanche, and Sébastien Dubé. In proceedings of the WiP session of SIES, June 2014. (slides, poster)
The design of SimSo and in particular the way we integrate the cache effects in the simulation was presented at a conference focusing on simulation and at WATERS:
  • Simulation of real-time multiprocessor scheduling with overheads
    Maxime Chéramy, Anne-Marie Déplanche, and Pierre-Emmanuel Hladik. In proceedings of SIMULTECH, 2013.
  • Simulation of real-time scheduling algorithms with cache effects
    Maxime Chéramy, Pierre-Emmanuel Hladik, Anne-Marie Déplanche and Silvano Dal Zilio. In proceedings of the 6th International Workshop on Analysis Tools and Methodologies for Embedded and Real-time Systems (WATERS). July 2015.

Screenshot