Statistics
| Branch: | Tag: | Revision:

sssimulator / README @ master

History | View | Annotate | Download (2.54 KB)

1
This is SSSim, the Simple & Scalable Simulator for P2P scheduling
2
algorithms.
3

    
4
SSSim is not a real event-based simulator, but a tool for comparing
5
the schedules generated by different chunk/peer selection algorithms
6
(called "chunk scheduling algorithms" and "peer scheduling algorithms"
7
in SSSim). To simplify such comparisons and to make the schedules easier
8
to predict/analyse, SSSim is based on some simplifying assumptions (which
9
explain why the simulator is "simple & stupid"):
10
1) All peers are synchronised
11
2) All the peers have the same output bandwidth, which is equal to the
12
   stream bitrate. Times are normalised dividing everything by the time
13
   needed to send a chunk (hence, the stream bitrate and the output
14
   bandwidths are equal to 1).
15
3) All the peers have a very large (modeled as infinite) input bandwidth
16
4) All the peers have the possibility to know the internal state of all
17
   the other peers in the system (the scheduling algorithms can be clairvoyant)
18

    
19
Based on these assumptions, at every time unit:
20
1) Each peer receives all the chunks that have been sent to it at the previos
21
   time unit
22
2) The source selects a target peer (peer scheduling) and sends a new chunk
23
   to it
24
3) Each peer selects a chunk C (chunk scheduling) and target peer P (peer
25
   scheduling) and sends C to P.
26
   Note that the peer can select first the chunk and then the peer or
27
   vice-versa (or can select chunk and peer simultaneously, but these
28
   algorithms have not been tested yet).
29

    
30
SSSim can generate a trace showing the chunks exchanged between peers at
31
each time unit.
32

    
33
To compile the simulator, just type "make" and a "sssim" executable should
34
be built. To build the simulator with different scheduling algorithms, you
35
can use the "PEER_SCHED" and "CHUNK_SCHED" variables: for example,
36
"make CHUNK_SCHED=latest_blind_chunk". To remove the playout delay (and
37
limited-size chunk buffer), compile with the "NO_BUFF" variable defined:
38
for example, "make NO_BUFF=YesPlease".
39

    
40
The program accepts a "-n <peers>" option to set the number of peers (100
41
is the default), while the number of chunks to send can be configured by
42
using the "-c <chunks>" option. 
43
The complete syntax for the sssim program is available by using the "-h"
44
(help) option.
45
It is possible to specify an optional <trace file> argument indicates the
46
name of a file where the trace of all the exchanged chunks is written, and
47
an optional <results file> argument which indicates the name of a file
48
where the chunks' diffusion times (the maximum time needed by a chunk
49
to reach a peer) are saved as soon as chunks arrive.