This page contains the project description for
Performance Evaluation. There are several project options. The goal
is for the student to undertake a moderately significant performance modeling
project. I believe all of the projects offered below have the potential for
leading to further investigation beyond this semester. Please read this page
very carefully to understand all the parameters of the class project.
Deliverables:
There are three deliverables for this project, they are:
Project proposal - A one page document describing the problem,
objectives, methods, plan, schedule, and expected outcomes. Your proposal
should contain about 5 references (the references may be listed on a second
page).
Project paper - You will submit your project in a 5-page IEEE
conference style paper. The submitted paper must comply with IEEE conference
paper formatting rules. Author instructions from the IEEE are
here. A paper that I and several colleagues
wrote for ICC 2004 is here. You are welcome to
use my paper as a format model or template. Any paper that does not conform
with the formatting rules will be discarded (this is exactly what happens to
incorrectly formatted conference submissions!).
Project demo and source code - You will also demonstrate your
project and submit source code (as "open source" for free use by others).
It is strongly suggested that you maintain a project website where you will
post your proposal, maintain a literature review, and finally post your paper
and source code. This is how many research projects are now conducted.
Rules:
There are rules. They are:
You may work in student pairs or alone.
All submitted source code must comply with the
Christensen C style guidelines. Code that does comply to
these guidelines will be discarded. All programs must be implemented in straight C
(yes, some of the projects could probably be better done in Perl) and must compile
with the Borland bcc32 command-line compiler. All programs must be console-mode
(no GUI - unless otherwise described below). All programs must be portable between
Windows and Unix unless there is some good reason (which you should discuss with me)
that this cannot be accomplished.
The submitted paper must comply with IEEE conference paper formatting rules.
This is discussed in the above section.
Plagiarism cannot be tolerated. If you have any questions on this important
issue, please see me. Plagiarism will result in you being removed from
the graduate program!
Project ideas:
Idea #1 - Compare the performance of programs written in Java, C,
and Perl. You need to define the parameters of interest and implement test
programs in each language. You also need to determine the best ways to
measure performance and this may include directly instrumenting your
programs. Of particular interest is the use of these languages on handheld
devices (PDAs, mobile phones, etc.), however you may conduct the study on
desktop computers if you have no access to a handheld device.
Idea #2 - Investigate methods for generating self-similar traffic
suitable for input to a simulation simulation model. Develop and evaluate
several methods of generating self-similar traffic. A good traffic generator
should be simple to understand, efficient to execute, and allow "dialing in"
of the Hurst parameter (i.e., the Hurst parameter is the control variable).
Some examples of very simple synthetic traffic generators can be found
here.
Idea #3 - A lot of work has been done on characterizing digital
video (MPEG, etc.) transmission on IP networks. What about Voice over IP
(VoIP)? For this project idea you would collect traces from real VoIP
telephones, characterize the traffic, and develop/evaluate a traffic generator
suitable for use in a simulation model. If VoIP traffic entirely constant
bit rate, then this project is "too easy" And should not be done! There
exist free VoIP phones for use with your PC, for example
Skype.
Idea #4 - Very high speed links (e.g., 1-Gbps Ethernet links to
the desktop) are frequently idle or run at a very low utilization. This
is a waste of electricity (the electricity required to keep the link at
1-Gbps instead of a lower-power 10 or 100-Mbps). It would be interesting
to characterize traffic from Ethernet-connected PCs and see if predictive
methods of increasing/decreasing link speed could be implemented that
would 1) result in electricity savings and 2) not be noticeable by the user.
You would likely need to build a simulation model to evaluate your
predictive methods. Please see
Chamara Gunaratne (one of my PhD students) to discuss this project.
You would work with Chamara and your contributions would be duly cited
in any publications.
Idea #5 - An iterative solver for P and Q matrices is
here. The
input is a text file. Can you develop a visual editor and front end for
this solver that allows one to visually draw a Markov chain (that is the
input to the solver) and also view the results visually?
Idea #6 - It is well known that slow start in TCP can contribute
to poor performance in transfer of small files across a large/fast network.
This can affect web surfing. Can you isolate the effect of slow start and
propose an improvement based on a cookie storing the previous maximum rate
between a client and server (and then starting the connection at a window
size corresponding to the cookied rate)? This is a systems project -- you
will have to "hack" this into Linux and then measure/evaluate it.
Idea #7 - It is well know that the congestion control mechanism
in TCP can result in a sawtooth pattern in throughput. Can you isolate
(i.e., actually find) this behavior in the lab? If so, I have some very
simple ideas (essentially, a stateful window sizing) for improving TCP
congestion control that you could "hack" into Linux and then
measure/evaluate.
Idea #8 - A good approach to learning both a problem area and
a toolkit is to reproduce an already published result. You are welcome to
find a paper and reproduce the key results. Be sure (i.e., in the proposal)
to get approval from me before you begin work on reproducing a particular
paper. An example of reproducing a paper result is
here.
If was in reproducing this result that I started the
tools page.
Idea #9 - Can you find a clean/easy way to use CSIM to model
arbitrary topologies of queues (both open and closed queueing networks)? The
model would read some sort of "configuration file" where the topology is
described in terms of a connection matrix, the parameters for each node
are described in a list, and traffic input and routing rules are also
described. You would validate your approach for simple topologies using
Jackson's Theorem. NOTE: If you choose this project, you must learn CSIM well
before we cover it in class!
Idea #10 - Can you find a clean/easy way to use CSIM to model
P2P networks (modeling the network topology is very important). See
Graciela
Perera (one of my PhD students) to discuss the project. You would
work with Graciela and your contributions would be duly cited in any
publications. NOTE: If you choose this project, you must learn CSIM well
before we cover it in class!
Idea #11 - There is no project idea #11 -- you are very welcome to
propose your own performance evaluation project. Perhaps you have a real
system at work you want to model? Perhaps your thesis or dissertation
research requires a performance model? Please see me to discuss your
ideas.