Statistics
| Branch: | Tag: | Revision:

sssimulator @ d5b6282d

Name Size Revision Age Author Comment
  Matrix d5b6282d over 5 years Luca Baldesi add function to make overlays bidirectional (st...
  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 774 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.45 KB 91dc88f2 over 5 years luca combine graph files, matrix eigenvectors and si...
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 5.95 KB f85b64d0 over 5 years Luca Baldesi fix bug in overlay building function
overlay.h 612 Bytes 72616bda over 5 years luca add copyright banner to overlay 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 4.63 KB 91dc88f2 over 5 years luca combine graph files, matrix eigenvectors and si...
stats.c 3.74 KB c02ceab4 over 5 years Luca Baldesi apply small bufixes
stats.h 243 Bytes 86681e55 over 5 years luca first version
td.c 3.46 KB c02ceab4 over 5 years Luca Baldesi apply small bufixes
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
d5b6282d 08/04/2015 12:30 PM Luca Baldesi

add function to make overlays bidirectional (starting from a matrix)

f85b64d0 08/04/2015 10:03 AM Luca Baldesi

fix bug in overlay building function

74e8a5db 08/04/2015 09:12 AM Luca Baldesi

fix bug in weighted_random scheduling function

b15bb747 08/04/2015 08:57 AM luca

add peer scheduling function for selecting on the basis of need and overlay edge probability

c76dd2cb 08/04/2015 08:56 AM luca

fix bug in the overlay building function

72616bda 08/03/2015 05:50 PM luca

add copyright banner to overlay files

91dc88f2 08/03/2015 05:40 PM luca

combine graph files, matrix eigenvectors and simulation

This commit bind together SSSim with the matrix module which can load from file ".edges".
the centrality properties of the peers can be derived from the matrix to speed up the distribution

ec88b090 08/03/2015 02:37 PM luca

add tokens check function for looking for known tokens

this can be useful when checking if a flag has been specified through command line

692b6c80 08/03/2015 09:36 AM luca

add libmatrix module

c02ceab4 07/31/2015 08:01 AM Luca Baldesi

apply small bufixes

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