Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/25a0/dcnet-simulator
Simulator to explore and compare various scheduling algorithms for DC-networks
https://github.com/25a0/dcnet-simulator
Last synced: 24 days ago
JSON representation
Simulator to explore and compare various scheduling algorithms for DC-networks
- Host: GitHub
- URL: https://github.com/25a0/dcnet-simulator
- Owner: 25A0
- Created: 2015-10-28T07:15:04.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-28T07:16:28.000Z (about 9 years ago)
- Last Synced: 2024-10-15T06:08:22.366Z (2 months ago)
- Language: Java
- Homepage:
- Size: 141 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This is the simulator that was used to benchmark the performance of footprint scheduling,
Pfitzmann's algorithm, and the Herbivore implementation of Chaum's map-reservation algorithm.Run `make` to compile the simulator. This requires Java 7 (or newer).
After that, run `./simulation.sh` to start the interactive simulator.
The folder `scripts` contains various benchmark scripts that run simulations automatically.
In order to execute a script (e.g. the script `scripts/benchmarks/activity`), enter
`run scripts/benchmarks/activity`
in the interactive simulator or execute
`./simulation.sh scripts/benchmarks/activity`
from the shell.In order to save the results of a simulation, enter `write` in the interactive simulator once the
simulation is finished.
The results will be written to a .csv file in the folder `benchmark-data`. If this file is
already present, the new results will be appended to the existing data.The plots in the paper can be reproduced with the provided R script `process.R`. This requires
the ggplot2 library. By default, all plots are commented out.Browsing the predefined scripts gives a good overview of the available options for each simulation.
Below is a quick guideline for running custom simulations:For footprint scheduling:
`footprint S B P A C`
where
S is the number of slots that can be reserved
B is the number of bits per footprint
P is a list containing the number of participants in the simulated networks
A is the activity rate of all participants as a floating point value between 0 and 1
C is a boolean that determines whether the discussion should stop once the schedule converged.
Note that this is only possible in a simulation, not in a real-life scenario where
footprints are kept secret in general.
So, a simulation of footprint scheduling could look like this:
`footprint 16 8 [100 200 500 1000 2000 5000 10000] 0.01 false`For Pfitzmann's algorithm:
`pfitzmann i P A`
where
i is the number of available slots per participant (as discussed in Appendix A)
P is a list containing the number of participants in the simulated networks
A is the activity rate of all participants as a floating point value between 0 and 1So, a simulation of Pfitzmann's algorithm could look like this:
`pfitzmann 32 [100 200 500 1000 2000 5000 10000] 0.01`For the Chaum's map reservations:
`chaum P A`
where
P is a list containing the number of participants in the simulated networks
A is the activity rate of all participants as a floating point value between 0 and 1So, this is how a simulation of Chaum's reservation map could look like:
`chaum [100 200 500 1000 2000 5000 10000] 0.01`