Statistics
| Branch: | Tag: | Revision:

sssimulator @ 659ba19d

Name Size Revision Age Author Comment
  EventScheduler 0bf1a874 about 5 years Luca Baldesi add priority flag to events if events have sam...
  Test 6b38058b about 5 years luca Add tests and Dl/ELp scheduling algorithm
Makefile 818 Bytes 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
README 2.54 KB 86681e55 about 5 years luca first version
config.h 83 Bytes 86681e55 about 5 years luca first version
core.h 1.4 KB 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
ed.c 5.68 KB 659ba19d about 5 years Luca Baldesi add copyright banner to "event driven" files
ed.h 1.01 KB 659ba19d about 5 years Luca Baldesi add copyright banner to "event driven" files
gpl-3.0.txt 34.3 KB 86681e55 about 5 years luca first version
graph.c 7.67 KB 86681e55 about 5 years luca first version
graph.h 441 Bytes 86681e55 about 5 years luca first version
peer_event.c 3.83 KB 659ba19d about 5 years Luca Baldesi add copyright banner to "event driven" files
peer_event.h 574 Bytes 659ba19d about 5 years Luca Baldesi add copyright banner to "event driven" files
proc-time.c 8.26 KB 6b38058b about 5 years luca Add tests and Dl/ELp scheduling algorithm
sched.c 19.6 KB 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
sched.h 359 Bytes 86681e55 about 5 years luca first version
sssim.c 5.64 KB 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
stats.c 3.79 KB 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
stats.h 266 Bytes 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
td.c 3.57 KB 52770a8f about 5 years Luca Baldesi add event driven simulation module the '-e' pa...
td.h 83 Bytes 86681e55 about 5 years luca first version
test.sh 15.5 KB 6b38058b about 5 years luca Add tests and Dl/ELp scheduling algorithm

Latest revisions

# Date Author Comment
659ba19d 07/30/2015 01:53 PM Luca Baldesi

add copyright banner to "event driven" files

52770a8f 07/30/2015 01:49 PM Luca Baldesi

add event driven simulation module

the '-e' parameter can be used to make SSSim use the event driven simulation approach

0bf1a874 07/30/2015 01:46 PM Luca Baldesi

add priority flag to events

if events have same time the new one is pushed in the last position possible (FIFO)
the priority flag can be used to override this behaviour

a79ee600 07/30/2015 01:43 PM Luca Baldesi

fix bug in ord_array position selection

af271552 07/23/2015 05:07 PM luca

add event scheduler

6b38058b 07/23/2015 04:29 PM luca

Add tests and Dl/ELp scheduling algorithm

86681e55 07/23/2015 04:24 PM luca

first version

View all revisions | View revisions

README


This is SSSim, the Simple & Scalable Simulator for P2P scheduling algorithms. SSSim is not a real event-based simulator, but a tool for comparing the schedules generated by different chunk/peer selection algorithms (called "chunk scheduling algorithms" and "peer scheduling algorithms" in SSSim). To simplify such comparisons and to make the schedules easier to predict/analyse, SSSim is based on some simplifying assumptions (which explain why the simulator is "simple & stupid"): 1) All peers are synchronised 2) All the peers have the same output bandwidth, which is equal to the stream bitrate. Times are normalised dividing everything by the time needed to send a chunk (hence, the stream bitrate and the output bandwidths are equal to 1). 3) All the peers have a very large (modeled as infinite) input bandwidth 4) All the peers have the possibility to know the internal state of all the other peers in the system (the scheduling algorithms can be clairvoyant) Based on these assumptions, at every time unit: 1) Each peer receives all the chunks that have been sent to it at the previos time unit 2) The source selects a target peer (peer scheduling) and sends a new chunk to it 3) Each peer selects a chunk C (chunk scheduling) and target peer P (peer scheduling) and sends C to P. Note that the peer can select first the chunk and then the peer or vice-versa (or can select chunk and peer simultaneously, but these algorithms have not been tested yet). SSSim can generate a trace showing the chunks exchanged between peers at each time unit. To compile the simulator, just type "make" and a "sssim" executable should be built. To build the simulator with different scheduling algorithms, you can use the "PEER_SCHED" and "CHUNK_SCHED" variables: for example, "make CHUNK_SCHED=latest_blind_chunk". To remove the playout delay (and limited-size chunk buffer), compile with the "NO_BUFF" variable defined: for example, "make NO_BUFF=YesPlease". The program accepts a "-n " option to set the number of peers (100 is the default), while the number of chunks to send can be configured by using the "-c " option. The complete syntax for the sssim program is available by using the "-h" (help) option. It is possible to specify an optional argument indicates the name of a file where the trace of all the exchanged chunks is written, and an optional argument which indicates the name of a file where the chunks' diffusion times (the maximum time needed by a chunk to reach a peer) are saved as soon as chunks arrive.

Also available in: Atom