Distributed classic DEVS simulator with TimeWarp
for more up to date code and news about this project, please visit my projects page
http://msdl.cs.mcgill.ca/people/amr/Projects
-
Team
Amr Al Mallah
-
Motivation
The sequential nature of the classical DEVS simulator poses many restrictions on the scalability and performance the simulator
could achieve. the pythonDEVS simulation provides a basic correct implementation of the classical simulation protocol.
The implemented protocol is purely sequential. Several techniques for distributing the DEVS simulation protocol were described in
the literature. two broad classifications a conservative and an optimistic ( time-warp ) approach. simulating specific components
onto different processes ( threads ). this approach will increase the simulation performance. so instead of the simulation runnig
for several days sequentially, into several hours when simulated with several threads. for this project, the time-warp
implementation is intended for the scope of this project.
-
Proposal/Requirements
For this project, I intend to extend the pythonDEVS implementation of the DEVS simulator to accommodate a timewarp
implementation. that is the user should be able to take a DEVS model and provide a partition of that model to be used
by the simulator to run the each as a time warp simulation and provide synchronization between them.
-
Design/Models
The design of the simulator involves three classes: time-warp atomic solver, a time-warp coupled solver. and a time-warp root
coordinator. Also Pyro was used as a middle ware to transmit messages between root coordinators. and event server is used to achieve that.
-
Implementation
timewarp.py the full project also include an example to run. called DistributedtimewarpExperiment
which has the example to be ran. DEVS-Simulator.zip
note The implementation is still buggy and incomplete . I will update the files here once I have a more stable version.
-
Experiments
the queue model is used. it's also included in the zip file. Note : to able to run the file you will need to copy DIstributed_model.py into
the python search path. also you will need to copy the pydevs folder to the python search path.
-
Conclusions
I am updating this implementation, for the latest version
https://msdl.cs.mcgill.ca/svn/AToM3/projects/devs/distributed_pydevs if you are not an MSDL member you can view only here:
http://msdl.cs.mcgill.ca/trac/AToM3/browser/projects/devs/distributed_pydevs
-
References
-
Presentation
Presentation.pdf