Skip to content

Effects-based simulation #82

@faustus123

Description

@faustus123

We need to be able to run a complex configuration (~50 components) on a single laptop or desktop to simulated the streaming system. The simulation should create an individual process for each component. This will be purely effects-based in though. E.g. messages passed between components will be small data structures that include the buffer size the data represents.

  • Define a structure to represent a data buffer that is being sent. This should contain at least the size of the buffer it represents. It should be defined so that it can be sent via zmq between components that are written in either C++ or python
  • Create a python script that can send these packets. It should be configurable with the following parameters
    • Port to send data to
    • Average data rate
    • RMS of chunk sizes as fraction of average. Chunk sizes should be randomly sampled from normal distribution. If this is 0, then each chunk should be exactly the average size.
    • Duty-cycle of data stream. This will be used to control the "burstiness" of the data. A value of 1 means steady state. A value of zero means send data at maximum NIC rate for brief time so as to maximize the time between sends.
    • Simulated NIC bandwidth limit. E.g. 100Gbps.
  • Update the cpu_proxy program to receive these packets and sleep for appropriate amount of time based on the buffer size and data "type"
  • Update the cpu_proxy program to send packets like this to the next component in the chain

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions