Skip to content

brettviren/ersatz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ersatz

Concepts

The Ersatz package allows simulating a distributed, networked application (like DUNE’s DAQ) in terms of its throughput, latency and bottlenecks. It should be easy to explore a “configuration space” which spans the overall organization of the distributed application as well as detailed assumptions about the performance of individual elements.

The application is modeled as an acyclic directed graph. Each node is specified by:

  • input and output bandwidth
  • input and output buffer depths
  • processing time
  • data compression/inflation factor
  • output routing

The “data” passed through the application not detailed and consists mostly of:

  • a size (in Bytes)
  • an identifier

These messages are produced and consumed between two nodes. Routing of messages is subject to logical connections and constrained by a model of transport mechanism (eg a shared bandwidth, preemptive network switch).

Installation

Erastz is a Python 3 application and installs in the “normal Python way”. It is recommended to install inside a virtual environment

$ virtualenv -p python3 ersatz-venv
$ source ersatz-venv/bin/activate

$ git clone https://github.com/brettviren/ersatz.git
$ cd ersatz/

$ python setup.py install

# or

$ python setup.py develop

Running

Right now, there is no command line interface, just a bunch of unit tests. Some of which actually run.

$ python tests/test_shared_bandwidth_switch.py 
... a bunch of text that is probably meaningless at first glance ...

About

A descrete event simulation based on SimPy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages