Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/irwinsnet-old/DesPy

A discrete event simulation framework that uses Python
https://github.com/irwinsnet-old/DesPy

Last synced: 5 days ago
JSON representation

A discrete event simulation framework that uses Python

Awesome Lists containing this project

README

        

# DESPY
## Discrete Event Simulation in Python

Full disclosure: I'm not a computer programmer. Despy is a hobby
project.My goals with this project are to improve my programming skills,
learn about discrete event simulation, and give myself something to do
on Sunday mornings besides read the comics. If someday this turns into
a functional framework for discrete event simulation, that's just icing.

Despy is a discrete event simulation framework that is written in
Python 3.5 and is heavily influenced by
`DESMO-J `_ and
`SimPy `_. Eventually, Despy
will support working through the examples in the *Discrete Event
Simulation* text by Banks, Carson, Nelson, and Nicol.

I am concerned that as a scripted language, Python may be slow for
complex simulations, but so far I haven't had any speed issues.
Furthermore, for a hobby project like Despy, the benefits of the math,
statistics, and plotting packages that are available for Python
outweigh my speed concerns. If I run into problems in the future with
more complex simulations, then I'll have a follow-on hobby project:
teaching myself how to reprogram parts of the framework in C++.

My goals for despy are to:

* Support both event and process world views.
* Provide typical simulation output parameters (queue length, system
time, utilization) by default.
* Support a high level of customization, but set sensible defaults for
simulation parameters to reduce the amount of code needed to run a
simulation.
* Write the simulation using only the standard Python library or
mainstream packages that are available in the `Anaconda Python stack
`_. Despy relies heavily on
`Numpy `_ and `Matplotlib `_.
* Eventually I would like to use Jinja or another template framework
to give simulation designers the ability to generate custom reports.
I also intend to set up the framework to allow Despy simulations to
run within iPython. It will take a while (I have a day job) -- check
back next year.