Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JuliaDynamics/ConcurrentSim.jl
A discrete event process oriented simulation framework written in Julia. Formerly named SimJulia!
https://github.com/JuliaDynamics/ConcurrentSim.jl
discrete-event discrete-event-simulation event-scheduler julia network-simulator
Last synced: 5 days ago
JSON representation
A discrete event process oriented simulation framework written in Julia. Formerly named SimJulia!
- Host: GitHub
- URL: https://github.com/JuliaDynamics/ConcurrentSim.jl
- Owner: JuliaDynamics
- License: mit
- Created: 2013-03-23T18:44:23.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-09-12T13:26:00.000Z (2 months ago)
- Last Synced: 2024-09-13T01:32:41.355Z (2 months ago)
- Topics: discrete-event, discrete-event-simulation, event-scheduler, julia, network-simulator
- Language: Julia
- Homepage:
- Size: 2.02 MB
- Stars: 175
- Watchers: 20
- Forks: 36
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-des - Github
README
# ConcurrentSim (formerly SimJulia)
Documentation
Continuous integration
Code coverage
Static analysis with
A discrete event process oriented simulation framework written in [Julia](http://julialang.org/) inspired by the Python library [SimPy](https://simpy.readthedocs.io/). One of the longest-lived Julia packages (originally under the name SimJulia).
## Installation
ConcurrentSim.jl is a [registered package](http://pkg.julialang.org), and is installed by running
```julia
julia> Pkg.add("ConcurrentSim")
```## License
[![License](http://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](LICENSE.md)
## Authors
* Ben Lauwens, Royal Military Academy, Brussels, Belgium.
* Maintainer volunteers from the JuliaDynamics and QuantumSavory organizations.## Contributing
* To discuss problems or feature requests, file an issue. For bugs, please include as much information as possible, including operating system, julia version, and version of the dependencies: `DataStructures` and `ResumableFunctions`.
* To contribute, make a pull request. Contributions should include tests for any new features/bug fixes.## Release Notes
A [detailed change log is kept](https://github.com/JuliaDynamics/ConcurrentSim.jl/blob/master/CHANGELOG.md).
## Alternatives
`ConcurrentSim.jl` and `DiscreteEvents.jl` both provide for typical event-based simulations.
`ConcurrentSim.jl` is built around coroutines (implemented in `ResumableFunctions.jl`), while `DiscreteEvents.jl` uses Julia's async primitives via `Channels`.
`DiscreteEvents.jl` has an explicit clock that "ticks" at a fixed finite resolution, while `ConcurrentSim.jl` uses coroutines to make arbitrary jumps in time.
If you are evaluating which library to you for your goals, `ConcurrentSim.jl` might be a good choice if you are used to python's SimPy, but otherwise you are advised to try a small demo project in each and do your own benchmarks. Do not hesitate to submit issues on Github with questions or suggestions or feature requests. We value hearing what your experience with this library (compared to other libraries) has been.