Hi! I would like to announce the release of version 1.0.0 of my DVCompute Simulator that I wrote in Rust. Earlier I created the Aivika simulator written in Haskell. Then in March 2020 I already announced my DVCompute Simulator, but there are significant changes.
So, my simulator supports sequential, nested and optimistic distributed modes of discrete event simulation (DES). My approach is unified for all three modes. This is one approach, one method.
Now the modules of sequential and nested simulation are fully available in the form of source code. The license agreement, which you can download from the web page by the provided link, allows you to use DVCompute Simulator for non-commercial purposes, including teaching and research at universities, colleges and other educational institutions, research at non-profit research institutions, and personal non-profit purposes. But for using the simulator for commercial purposes, you have to contact me for an appropriate license.
If your project is non-commercial and you need either the sequential or nested type of simulation, then you can download the sources and use them under the terms of the provided License Agreement.
Regarding the optimistic distributed simulation, I retained the right to build a small simulation core, which is needed for this type of simulation.
The mode of sequential simulation is a case, when there is one thread of control flow and there is one model only. This is the main use case. Speaking of simulation in general, they usually mean this type of simulation. This is a basic type, which is assumed by default.
The mode of nested simulation is a case, when we create nested sub-models within the model, then nested sub-sub-models within those sub-models and so on. The operation of creating a sub-model is relatively cheap but not free. Here we can imagine something similar to chess play, where the moves are actions that affect the discrete event simulation model. Then we can use the nested simulation mode to find an optimal move, optimal solution. This is related to Theory of Games.
The mode of distributed simulation is intended for running simulations on super-computers and/or clusters of computers. My implementation uses the Time Warp method, but I adapted it for general purpose process-oriented simulation too. For example, I can use a GPSS-like language in all three modes of simulation, including the distributed one.
Finally, I created a tool for the Python programming language by using my DVCompute Simulator. I called it DVCompute Modeler. I mostly wrote it in Rust with a small part written in C.
It can be used for fast prototyping simulation models in Python. Once the model is complete, you can translate it directly into Rust with help DVCompute Simulator. This is an example of that how my simulator can be used in practice.