westerndigitalcorporation / desmod Goto Github PK
View Code? Open in Web Editor NEWDiscrete Event Simulation Modeling framework for SimPy
License: MIT License
Discrete Event Simulation Modeling framework for SimPy
License: MIT License
Hello! Loving this library - helping me out with a simulation I'm working on.
What is the point of defining parent/child relationships? Is it only to generate DOT diagrams?
Thanks for the library!
Though I only use Queue
and Pool
for now, it is really helpful.
However, I would propose to export such classes on the package level.
I do not want to pollute my namespace, as in:
from desmod.queue import Queue
queue = Queue(env)
I do not see immediately from which package this class is.
But it is also a little bit weird to do it this way:
import desmod.queue
queue = desmod.queue.Queue(env)
Why should I write queue twice?
I would propose to extend __init__.py
and export classes like Queue
on the package level:
from .queue import Queue
Then I can do:
import desmod
queue = desmod.Queue(env)
What are your thoughts?
Hi,
My multi-factor simulation involves hundreds of individual simulations, each individual simulation lasts from a few seconds to a few hours. when running with pypy, memory usage of worker threads (subprocesses) increase overtime, it eventually goes beyond my system's memory capacity (32GB) and triggers kernel to kill some work threads.
The figure shows memory usage of worker threads (child0-7) grows over time:
CPython doesn't have this memory issue:
I don't see a difference between these two events. when_any checks if _self.items:
but that always needs to satisfy given that it is called only in _trigger_put after a new item has been enqueued.
Shouldn't when_any also be called in _trigger_get?
The GasStation example in both SimPy and desmod could be improved by implementing a "WhenAtMost" event for a SimPy Container
. The process _monitor_reservoir
currently polls every 10s which is inefficient as it generates and processes many events that are actually unnecessary.
I implemented WhenAtMost (level falls below x), WhenAtLeast (level rises above x) and WhenChange (some get or put event occurred) for Containers in SimSharp and updated the sample accordingly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.