Statistics
| Branch: | Tag: | Revision:

sssimulator @ f1158e5c

Name Size Revision Age Author Comment
  EventScheduler f1158e5c over 3 years Luca Baldesi Refactor Makefile
  Matrix d6fa79fc about 5 years Luca Baldesi fix bug in matrix_shrink function. bug affects ...
  Test f1158e5c over 3 years Luca Baldesi Refactor Makefile
.gitignore 49 Bytes 80fb408d over 3 years Luca Baldesi add .test and .edges to gitignore
Makefile 1019 Bytes f1158e5c over 3 years Luca Baldesi Refactor Makefile
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.56 KB 4136f032 about 5 years Luca Baldesi add important annotation. reminds that the buff...
ed.c 6.45 KB 80f4c362 over 4 years Luca Baldesi add delay logging functionality
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.66 KB c02ceab4 about 5 years Luca Baldesi apply small bufixes
graph.h 441 Bytes 86681e55 about 5 years luca first version
overlay.c 7.27 KB 78d8960f about 5 years Luca Baldesi add network load factor option. This feature e...
overlay.h 612 Bytes 72616bda about 5 years luca add copyright banner to overlay files
peer_event.c 3.7 KB bf3d3ebd about 5 years Luca Baldesi refactor action event initialization and standa...
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 20.7 KB 32c9a7bc over 4 years Luca Baldesi add auto convergence feature this feature allo...
sched.h 425 Bytes 32c9a7bc over 4 years Luca Baldesi add auto convergence feature this feature allo...
sssim.c 5.79 KB ba1583a3 over 4 years Luca Baldesi fix usage print alignment
stats.c 7.09 KB 4d4d1b40 over 4 years Luca Baldesi fix test case missing global variable and windo...
stats.h 790 Bytes f850347b over 4 years Luca Baldesi add windowed analysis mode add tests for conver...
td.c 4.29 KB 80f4c362 over 4 years Luca Baldesi add delay logging functionality
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
f1158e5c 04/21/2017 08:51 AM Luca Baldesi

Refactor Makefile

80fb408d 04/05/2017 11:55 AM Luca Baldesi

add .test and .edges to gitignore

ba1583a3 02/04/2016 02:51 PM Luca Baldesi

fix usage print alignment

6fa73170 02/04/2016 02:48 PM Luca Baldesi

add auto-convergence feature; simulation stops after delay convergence is reached, a chunk analysis window size can be specified

c17f8c05 02/04/2016 02:43 PM Luca Baldesi

merge the delay_log feature, solve conflicts

4d4d1b40 02/04/2016 02:19 PM Luca Baldesi

fix test case missing global variable and window analysis size in non-converging mode

80f4c362 01/19/2016 10:45 AM Luca Baldesi

add delay logging functionality

f850347b 01/13/2016 11:24 AM Luca Baldesi

add windowed analysis mode
add tests for convergence analysis function

make possible to analyze chunk data on blocks, evaluating the last available.

32c9a7bc 01/12/2016 10:51 AM Luca Baldesi

add auto convergence feature

this feature allow the specification a parameter of convergence on the average receiving delay and the termination of the simulation

78d8960f 09/17/2015 03:26 PM Luca Baldesi

add network load factor option.

This feature enables to specify the maximum stress on the network during streaming.
Default is netload=1, so the sum of chunks sent in one chunk time is at maximum equal to the number of peers.

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