Statistics
| Branch: | Tag: | Revision:

## sssimulator / README @ master

 1 ```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. ```