SimPy book

Back Up

This page will provide advance information on the introductory book 'SimPy -- Simulation in Python', currently being written by Klaus G. Müller and a co-author. It is aimed at self-studying users and teachers of Simulation 101 courses.

Status as of January 2008

Negotiations with publishers are ongoing.

Status as of June 2007

The draft is more than 75% complete. A suitable publisher is still being sought.

Status as of October 2006

The draft text is done for more than 50%. Negotiations with publishers will start later this autumn.

Sample chapter

A sample chapter (Chapter 3, 'Developing a SimPy simulation program') can be read here. (Ignore the crazy coloring scheme, it just reflects different MS Word text styles in the draft.)

Sample section from annex

A sample section from the book's annex, "Saving and restarting SimPy simulations", can be read here.

Book Table of Contents (draft)

Preface
    Audience
    Prerequisites
    Getting and installing SimPy
    Where to get SimPy
    Installing SimPy
    Contents of this book
    Conventions used in this book
    Resources, comments and questions
    Acknowledgments
Chapter 1: Introduction
    Systems models and simulation
    Models, activities and events
    A very simple model
    Activities
    The notion of process
    Exercises
Chapter 2: SimPy overview
    What is SimPy?
    The power of SimPy
    SimPy's implementation of processes
    Scheduling commands
    How time passes in SimPy
    SimPy process states
    Behind the scenes - SimPy event scheduling
    Exercises
Chapter3: Developing a SimPy simulation program
    Basic structure of a SimPy program
    Tools to use
    Development approach
    Let’s build our first SimPy program
Chapter 4: Entities
    class Process for active objects: entities
    Activating processes: the activate function
    Entities with multiple processes
    Generating transient entities: source processes
    Exercises
Chapter 5: Simulation results: data collection, analysis and output
    class Monitor
    class Tally
    Automatic monitoring of Resource, Level and Store instances
    Exercises
Chapter 6: Simple plotting: SimPlot
    Basic facilities
    Advanced facilities
    Exercises
Chapter 7: Inter-process synchronization in SimPy
    Mutual exclusion
    class Resource for passive, shared objects: resources
    Requesting and releasing resource units: yield request, yield release
    Monitoring Resource instances
    Priorities for resource requests
    Preemption by higher priority entities
    Changing available resource levels
    Impatient customers: balking and reneging
        Balking
        Reneging
    Exercises
    Producer/consumer synchronization
    Buffers: classes Level and Store
        class Level
        class Store
    Entity-entity (master/slave) cooperation
    Interrupts
    Exercises
Chapter 8: Conditional waiting
    Waiting for events - the observer pattern
    Queuing for an event
    Waiting for a general condition
    Exercises
Chapter 9: Miscellaneous features of SimPy
    Introspection by tracing: SimulationTrace
    More introspection: Lister, allEventNotices, allEventTimes
    Graphical user interface building: SimGUI
    Event-by-event execution: SimulationStep
    Synchronizing with real time: SimulationRT
    Exercises
Chapter 10: An advanced SimPy case-study (Call Center staffing)
Annexes
    Getting started with SimPy
    Debugging SimPy programs
    Recommended program structure for SimPy-based simulations
    Producing production quality graphs with SimPy

    Saving and restarting SimPy simulations
    SimPy resources
    SimPy glossary

 

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.