Statistics
| Branch: | Tag: | Revision:

sssimulator @ 80f4c362

Name Size Revision Age Author Comment
  EventScheduler bf3d3ebd over 5 years Luca Baldesi refactor action event initialization and standa...
  Matrix d6fa79fc over 5 years Luca Baldesi fix bug in matrix_shrink function. bug affects ...
  Test 91dc88f2 over 5 years luca combine graph files, matrix eigenvectors and si...
.gitignore 34 Bytes 91dc88f2 over 5 years luca combine graph files, matrix eigenvectors and si...
Makefile 946 Bytes b15bb747 over 5 years luca add peer scheduling function for selecting on t...
README 2.54 KB 86681e55 over 5 years luca first version
config.h 83 Bytes 86681e55 over 5 years luca first version
core.h 1.56 KB 4136f032 over 5 years Luca Baldesi add important annotation. reminds that the buff...
ed.c 6.01 KB 80f4c362 over 5 years Luca Baldesi add delay logging functionality
ed.h 1.01 KB 659ba19d over 5 years Luca Baldesi add copyright banner to "event driven" files
gpl-3.0.txt 34.3 KB 86681e55 over 5 years luca first version
graph.c 7.66 KB c02ceab4 over 5 years Luca Baldesi apply small bufixes
graph.h 441 Bytes 86681e55 over 5 years luca first version
overlay.c 7.23 KB d9aa6226 over 5 years Luca Baldesi solve bug related to peer pointers
overlay.h 612 Bytes 72616bda over 5 years luca add copyright banner to overlay files
peer_event.c 3.7 KB bf3d3ebd over 5 years Luca Baldesi refactor action event initialization and standa...
peer_event.h 574 Bytes 659ba19d over 5 years Luca Baldesi add copyright banner to "event driven" files
proc-time.c 8.26 KB 6b38058b over 5 years luca Add tests and Dl/ELp scheduling algorithm
sched.c 20.7 KB 74e8a5db over 5 years Luca Baldesi fix bug in weighted_random scheduling function
sched.h 375 Bytes b15bb747 over 5 years luca add peer scheduling function for selecting on t...
sssim.c 5.22 KB 80f4c362 over 5 years Luca Baldesi add delay logging functionality
stats.c 3.81 KB c02ceab4 over 5 years Luca Baldesi apply small bufixes
stats.h 266 Bytes 52770a8f over 5 years Luca Baldesi add event driven simulation module the '-e' pa...
td.c 3.76 KB 80f4c362 over 5 years Luca Baldesi add delay logging functionality
td.h 83 Bytes 86681e55 over 5 years luca first version
test.sh 15.5 KB 6b38058b over 5 years luca Add tests and Dl/ELp scheduling algorithm

Latest revisions

# Date Author Comment
80f4c362 01/19/2016 10:45 AM Luca Baldesi

add delay logging functionality

8d46f8f6 09/16/2015 04:10 PM Luca Baldesi

merge graph_matrix branch and fix conflicts.

e0ad77f8 09/16/2015 03:09 PM Luca Baldesi

Add event driven module

Enables a more fine control on the simulation

0c449069 09/16/2015 09:39 AM Luca Baldesi

prevent trace option to log scheduling related to overlay monitoring

d6fa79fc 09/16/2015 09:36 AM Luca Baldesi

fix bug in matrix_shrink function.
bug affects the shrinking of vectors (one-dimensional matrix)

4136f032 09/15/2015 03:21 PM Luca Baldesi

add important annotation.
reminds that the buffer length defines the playout delay and hence if a chunk can be offered.

d9aa6226 09/15/2015 02:07 PM Luca Baldesi

solve bug related to peer pointers

db6a9d7d 09/15/2015 12:18 PM Luca Baldesi

add shrink matrix functionality.
It makes possible to delete one row and one column from a matrix.

2b3a7f40 09/02/2015 03:10 PM Luca Baldesi

fix compromising bug in offer equalization.

7b1a0af3 09/02/2015 01:42 PM Luca Baldesi

add missing header

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