SimPy Homepage

SimPy Overview
Downloads
Documentation
Examples
HowTo's
Support
SimPy lab
Status and Plans
SimPy book

Welcome to the home page for SimPy. Take a look at What's New in our web.

SimPy (= Simulation in Python) is an object-oriented, process-based discrete-event simulation language based on standard Python. It is released under the GNU Lesser GPL (LGPL), starting with version 1.5.1 (previous versions were released under GPL). It provides the modeler with components of a simulation model including processes, for active components like customers, messages, and vehicles, and resources, for passive components that form limited capacity congestion points like servers, checkout counters, and tunnels. It also provides monitor variables to aid in gathering statistics. Random variates are provided by the standard Python random module.

The latest production release of SimPy is version 1.9.1.

Many users claim that SimPy is one of the cleanest, easiest to use discrete event simulation packages!

SimPy comes with data collection capabilities, GUI and plotting packages. It can be easily interfaced to other packages, such as plotting, statistics, GUI, spreadsheets, and data bases.

There is a SimPy wiki at http://www.mcs.vuw.ac.nz/cgi-bin/wiki/SimPy where you can publish your input/questions/issues related to SimPy and read what others are doing.

Another important communication channel for the SimPy user community is the SimPy User Group mailing list to which you can subscribe at http://lists.sourceforge.net/lists/listinfo/simpy-users.

A list for SimPy developers only is the simpy-developers list. We are always looking for more developers and code reviewers!

The public simpy-checkins mailing list is the list for code reviewers. It shows all additions to and changes in the SimPy code- and documentation CVS repository on SourceForge. You can subscribe at  http://lists.sourceforge.net/lists/listinfo/simpy-checkins.

horizontal rule

 
  search the web    search this site

What's New

March 17, 2008

SimPy 1.9.1 has been released and is available for download. This is a bug-fix release of SimPy 1.9. It cures two bugs:

bulletExcessive memory requirements of long-running or large scripts. This performance problem was caused by circular references.
bulletExceptions raised by preemption of processes holding multiple Resource items.

The release for the first time provides a shorter manual, "SimPy Simplified", which only describes SimPy's basic facilities. This manual is the ideal starting point for first courses on SimPy and beginning users. This manual will be further developed, even before the next release. The latest version will always be published on this web site here.

January 22, 2008

After several weeks of testing of its beta version, SimPy 1.9 has been released and can be downloaded from SourceForge. This is a major release with better performance, a few API-changes, improved documentation, and bug fixes. It is fully backwards compatible with previous versions.

The most important changes are:

bullet

The handling of the event list has been changed to provide significantly shorter runtimes for larger models (models with thousands of processes) and models with many interrupts or process cancellations. The event list is no longer based on a dictionary. This latter, very important improvement is based on a SimPy tuning study by Prof. Norm Matloff (U. of California at Davis) and some of his bright graduate students. Thanks, Norm and team!

bullet

The Manual has been edited and given an easier-to-read layout.

bullet

The Bank2 tutorial has been extended.

January 2008

Negotiations with book publishers concerning the publication of the book on SimPy continue. The current economical situation clearly has a negative impact here.

August, 2007

More and more universities are using SimPy for courses and research. A good indication of this is the thesis which Einstein José Briceño Márquez submitted to the Operations Research Department of the University of the Andes in Venezuela. Its title (translated from Spanish) is "Comparative Study of the Discrete Event Package SimPy. Development of a User Manual with Worked Examples". In June 2007, he was awarded his Master of Systems Engineering degree with an outstanding grade (18 out of 20).

One of his conclusions is (translated from Spanish):

". . . As it could be proved that SimPy is capable of modeling and simulating complex systems, one can conclude that it is not necessary to make expensive investments in the acquisition of commercial software, when software exists with the same characteristics and which is freely distributable and Open Source. . . ."

He recommends to encourage the use of SimPy in the Systems Engineering School of the University of the Andes.

He expects to be able to publish thesis and user manual (both in Spanish) on the Web in the next months.

August, 2007

The in-depth editing of the two Bank tutorials included in the SimPy distribution has been completed and has resulted in even better training documents.

Experimentation and performance measurement aimed at speeding up SimPy have been completed. The results look promising: depending on model size and scenario, speed improvements of 10..50% are achievable, using either the bisect or the heapq package from the Python library. The improved SimPy version based on bisect has been developed by Prof. Matloff (U. of California at Davis) and a group of his students. The SimPy user and developer communities will be involved in evaluating the findings and deciding on which package to employ for a future faster SimPy version.

June 14, 2007

Many SimPy users have asked for a capability to save and later restart a simulation run. With some programming, this is possible. If you want to learn how it can be done, have a look at the article "Saving and restarting SimPy simulations". It will also be included as an annex in the upcoming SimPy book.

What is this article all about? It describes how Python's pickle facility cannot save generators and why simple pickling of SimPy programs "out of the box" is therefore impossible. The article shows an approach to making SimPy programs savable and restartable by working around this annoying shortcoming of the pickle implementation. It gives several working examples.

Back to Top

horizontal rule

©Copyright 2004, 2005, 2006, 2007, 2008 SimPy Developer Team.
For problems or questions regarding this web contact SimPy webmaster.
Last updated: 19/03/08.