This page contains a combined assignment #6 and #7 for
Simulation. This deliverable part 1 of this
assignment is due on Monday, April 11 in class and the deliverable part 2
is due on Monday, April 25 in class. You are expected to properly reference
everything you find "on the web" or elsewhere.
Situation:
When the rate of job arrivals exceeds the job service rate of a single server,
a cluster of multiple servers can be used to serve the arriving jobs. Load
balancing of the arriving jobs is needed. Load balancing can be done randomly,
round robin, or with a stateful approach such as shortest queue. A stateful
approach requires that the load balancer have state information (e.g., queue
length) of the servers. There is overhead in providing this state information
to the load balancer. Our desire is to minimize overhead while at the same
time providing better load balancing than a stateless approach (such as random
load balancing). Figure 1 shows the configuration of interest.
Figure 1 - Load balancing for a single arrival stream and two servers
You are given the following parameters:
Two servers with infinite capacity queues.
Each server has service time with a mean service time of 1.0 seconds. The
service time distribution is either exponential or hyperexponential with
variance equal to four times the mean value.
The arrival stream is Poisson.
The load balancer takes zero time to make a job dispatch decision
The load balancer can have access to state information including its
own past "decisions" and information about the servers' state.
Requirements:
You are to design and evaluate (using simulation) a load
balancing method that provides a good trade-off between state information
overhead and system response time. You are to develop the correct metrics
and experiments to evaluate and demonstrate the performance of your load
balancing method.
Deliverable #1
The first deliverable is to submit the algorithm (load balancing method)
expressed in pseudocode (or as a finite state machine, which ever is most
appropriate) and a description of the experiments you will conduct. You
should also have some preliminary simulation results to suggest that your
method is a good one.
Deliverable #2
The second deliverable is a no more than 5 page "paper" in IEEE conference
paper format that has the following sections:
Introduction describing the problem
Background describing existing work and methods
You should have about five good references from the archival literature
Method clearly describing your new method
Evaluation describing the experiments and experiment results
Conclusions
List of references
The guidelines (that must be followed) for paper preparation are
here (PDF) and an example paper is
here (ZIP format). Writing the paper is not an
extreme burden, it is simply a way of formatting your report. You are required
to email to me your simulation model so that I can build and run it (and
reproduce your stated results). The key grading points are:
Suitable background review
Design (and description) of a load balancing method
Design and description of reasonable experiments
Use of run length control to make sure simulations were run for a sufficient
time and the results are correct (to a high degree of confidence)
Presentation of results
Conclusions from the results
Organization and presentation quality of the paper
Guidelines and hints:
Some hints are:
The CSIM balance simulation (balance.c) discussed
in class will be helpful to you.
It is highly suggested that you visit Dr. Christensen during office hours
(or at some other scheduled time) to discuss you first deliverable. The
"goodness" of your first deliverable greatly affects your second deliverable.
PRIZE
This final combined assignment is a chance for you to show-off what you have
learned in this class (and, indeed, in all of your academic training). Make
the most of this assignment and have fun too! A small prize (probably a gift
certificate to a local restaurant) will be given to the best submission.