Русский     English

AivikaSim

AivikaSim as a successor of Aivika is a general purpose discrete event simulation framework with partial support of agent-based modeling and system dynamics. It allows running sequential, nested and distributed simulations in an unified way. AivikaSim is written in the Haskell programming language and it is oriented on modelers with skills in programming.

AivikaSim allows combining different simulation methods within one model, providing a set of high-level constructs, when the model definition may resemble such modeling languages as SimScript, Visual SLAM and GPSS, which is illustrated in this example. The main supported paradigms are event-oriented and process-oriented, based on which more high-level computations are built.

Parallel Distributed Simulation

As it was mentioned, AivikaSim is also a distributed simulation framework. The parallel distributed simulation can be run on a cluster of computers, for example, connected through the Internet. The distributed simulation can be fault tolerant and it can recover after temporary connection errors, which allows running the simulation on ordinary computers. A variation of the optimistic Time Warp method is implemented.

There is a self-sufficient stress-test for the distributed simulation module, which can be reproduced by the provided instruction. It shows how the distributed model can recover after connection errors. It always returns the same results as it uses a pseudo-random number generator with predefined seed.

The point is that almost the same general purpose discrete event simulation library can be applied to the distributed simulation using the optimistic method as that one which can be applied to the sequential simulation.

Monte-Carlo Method

The sequential simulation module allows running a series of simulation experiments by using the Monte-Carlo method. The results can be returned as charts, histograms, CSV files and so on. It is illustrated in the following tutorial, which was destined yet for Aivika. You may follow the tutorial skipping the instructions concerning the installation of the old Aivika libraries.

Installation

The installation instructions for AivikaSim can be found here.

Documentation

There is the old documentation for Aivika, which is suitable for AivikaSim too. Almost the same code with very small modifications will work for the nested and distributed simulation models.

License

AivikaSim has a dual license, which allows using AivikaSim in educational projects under the terms of Academic Public License. At the same time, it is necessary to purchase a commercial license for commercial projects.

Bibliography

The main idea of the AivikaSim method is described in an article (in Russian) published in theses of The Seven All-Russia Scientific-Practical Conference on Simulation and its Application in Science and Industry "Simulation. The Theory and Practice" ("IMMOD-2015") that was held October 21-23 in Moscow: