aivika-distributed: Parallel distributed discrete event simulation module for the Aivika library
This package extends the aivika-transformers [1] package and allows running parallel distributed simulations. It uses an optimistic strategy known as the Time Warp method. To synchronize the global virtual time, it uses Samadi's algorithm.
Moreover, this package uses the author's modification that allows recovering the distributed simulation after temporary connection errors whenever possible. For that, you have to enable explicitly the recovering mode and enable monitoring all local processes including the specialized Time Server process as it is shown in one of the test examples included in the distributive.
With the recovering mode enabled, you can try to build a distributed simulation using ordinary computers connected via the ordinary net. For example, such a distributed model could even consist of computers located in different continents of the Earth, where the computers could be connected through the Internet. Here the most exciting thing is that this is the optimistic distributed simulation with possible rollbacks. It is assumed that optimistic methods tend to better support the parallelism inherited in the models.
You may test the distributed simulation using your own laptop only, although the package is still destined to be used with a multi-core computer, or computers connected in the distributed cluster.
There are additional packages that allow you to run the distributed simulation experiments by the Monte-Carlo method. They allow you to save the simulation results in SQL databases and then generate a report or a set of reports consisting of HTML pages with charts, histograms, links to CSV tables, summary statistics etc. Please consult the AivikaSoft [3] website for more details.
Regarding the speed of simulation, the rough estimations are as follows. The distributed simulation module is slower up to 6-9 times in comparison with the sequential aivika [2] simulation library using the equivalent sequential models. Note that you can run up to 7 parallel local processes on a single 8-core processor computer and run the Time Server process too. On a 36-core processor, you can launch up to 35 local processes simultaneously.
So, this estimation seems to be quite good. At the same time, the message passing between the local processes can dramatically decrease the speed of distributed simulation, especially if they cause rollbacks. Thus, much depends on the distributed model itself.
[1] http://hackage.haskell.org/package/aivika-transformers
Modules
[Index]
- Simulation
- Aivika
- Simulation.Aivika.Distributed
- Simulation.Aivika.Distributed.Optimistic
- Simulation.Aivika.Distributed.Optimistic.DIO
- Simulation.Aivika.Distributed.Optimistic.Generator
- Simulation.Aivika.Distributed.Optimistic.Guard
- Simulation.Aivika.Distributed.Optimistic.Message
- Simulation.Aivika.Distributed.Optimistic.Priority
- Simulation.Aivika.Distributed.Optimistic.QueueStrategy
- Ref
- Simulation.Aivika.Distributed.Optimistic.TimeServer
- Simulation.Aivika.Distributed.Optimistic
- Simulation.Aivika.Distributed
- Aivika
Downloads
- aivika-distributed-0.6.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Versions [RSS] | 0.1, 0.1.1, 0.1.3, 0.2, 0.3, 0.3.1, 0.5, 0.6, 0.7, 0.7.1.1, 0.7.2, 0.7.3, 0.7.4, 0.7.4.1, 0.7.4.2, 0.8, 1.0, 1.1, 1.1.1, 1.1.2, 1.2, 1.3, 1.4, 1.5, 1.5.1 |
---|---|
Change log | CHANGELOG.md |
Dependencies | aivika (>=5.2), aivika-transformers (>=5.2), base (>=4.6.0.0 && <6), binary (>=0.6.4.0), containers (>=0.4.0.0), distributed-process (>=0.6.1), exceptions (>=0.8.0.2), mtl (>=2.1.1), mwc-random (>=0.13.0.0), random (>=1.0.0.3), stm (>=2.4.2), time (>=1.5.0.1) [details] |
Tested with | ghc ==7.10.1 |
License | BSD-3-Clause |
Copyright | (c) 2015-2017. David Sorokin <david.sorokin@gmail.com> |
Author | David Sorokin |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Category | Simulation |
Home page | http://www.aivikasoft.com |
Source repo | head: git clone https://github.com/dsorokin/aivika-distributed |
Uploaded | by DavidSorokin at 2017-07-09T10:15:48Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 15013 total (66 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2017-07-09 [all 1 reports] |