Feature Request: Pipelined Processes

Issue #2 resolved
Forrest Iandola
created an issue

Pipelined Processes. Currently, a SimPy Process can request to execute on multiple resources simultaneously. It would be extremely useful to also enable Processes to do pipelined usage of Resources. A simple use case is a surveillance Process that sequentially executes on a camera, then on a wireless network link, then on a CPU that analyzes the data. The CPU portion of the Process depends on the completion of the wireless link portion, so requesting several Resources in the current SimPy interface doesn't quite cover this system model. In my user-level SimPy code, I have built pipeline dependencies like this by maintaining my own data structure of task paths and launching one Process for each of these: {Process 1 using camera, Process 1 using network, Process 1 using CPU}. Ideally, these three pipelined "sub-Processes" could be handled inside a single SimPy Process.

Going one step further, we could allow each Process to execute in serial and/or parallel along a predetermined Resource dependency graph. I've implemented this in user space, but my implementation has some limitations. Also, my user-level implementation depends on the 'networkx' Python library...not sure if this dependency is "allowed" in the SimPy programming conventions.

[This is a follow-up from the "Questions and Feature Requests" email thread on simpy-users.]

Comments (6)

  1. Log in to comment