Private:psim

From NMSL

This page documents the development of a discrete event simulator for P2P video streaming applications. This simulator captures important features of data-driven video streaming systems. In particular, it is designed to evaluate: (i) the performance of various segment scheduling algorithms; (ii) the potential of network coding in multi-layer P2P video streaming systems.

Todo List

We keep a short todo list here. For each todo item, we also list the expected workload, the current assignee, the tentative due date, and the completion time.

Description Workload (ppl-day) Assignee Tentative Duedate Completion time
Reread and implement Meng Zhang's algorithm 1.5 Cheng March 18, 2009 March 18, 2009
Finalize the simulator engine 1 Cheng March 17, 2009 March 17, 2009
Generalize the scheduling algorithm for multiple layer problem 3 N/A
Reorganize the evaluation setup subsection 2 Yuanbin March 18, 2009 March 18, 2009

High-Level Design

We present the high level design of the pSim. Please find a coarse class diagram below, and the source file can be downloaded here.


Some misc notes:

  • We use long for time/offset in msec, which has a rollover time 24.85 days

Performance metrics for scheduling

Here are some performance metrics:

  1. Average delivery ratio: number of on-time scheduled segments over total number of segments to be scheduled
  2. Load balance among senders
  3. Initial buffering time
  4. Time and space complexity of the scheduling algorithm


Performance metrics for network coding

Here are some performance metrics:

  1. Playback quality (PSNR)
  2. Resilience to peer dynamics (ability of maintaning good streaming quality)
  3. Required server capacity


How to install uml and svn tools in eclipse3.2.x

  • Install emul2
    1. Go to "http://www.soyatec.com/euml2/installation/", download its free edition. (Select the right version according to your eclipse)
    2. Unpack the zip file
    3. Open your eclipse, and go to Help -> Software Updates -> Find and install ... -> Search for new features to install -> New local site then find the unpakced file to install it.
    4. How to use: after you creating a new java project, go to File -> New -> Other, select the "UML2 Class Diagram" under the eUML directory, then you can create a class diagram for your project .


  • Install subclipse
    1. Open your eclipse, and go to Help -> Software Updates -> Find and install ... -> Search for new features to install -> New Remote Site
    2. Add "http://subclipse.tigris.org/update_1.4.x" to the URL field and add an arbitrary name to the Name field
    3. Follow the instruction to install it.
    4. If you encounter an error like "Subclipse Integration for Mylyn 3.x (Optional) (3.0.0) requires plug-in "org.eclipse.mylyn.tasks.core (3.0.0)" don't worry, just deselect the "Integrations" item and continue to install.
    5. Go to Window -> Preferences -> Team. If you can see SVN under the Team tab, congratulations, your installation is done.
    6. How to use: right click the project you want to commit, select Tean -> Share project -> SVN, input the URL of your svn server, then you can import your project to it.
    7. For more details on how to use subclipse, please refer to http://www.ibm.com/developerworks/opensource/library/os-ecl-subversion/


The project directory

I've put the psim project to "https://cs-svn.cs.surrey.sfu.ca/svn/nsl/schedule/psim". You can check it out in eclipse with subclipse.