Load balancing is a common theme in many modern computer applications. Load
balancing is used to distribute jobs to parallel server computers in a data
center. See wikipedia
(here) for
a discussion of load balancing. A good load balancing policy will minimize
response time of jobs. Your task is to use simulation to study three different
load balancing policies as a function of the job arrival rate, job service time
distribution, and delay of state information from the server computers to the
load balancer. The load balancing policies to be studied are random (RAND),
round robin (RR), and shortest queue (SHORT).
The system
The system you will model consists of five server computers and one load
balancer. All jobs arrive to the load balancer and are distributed (sent)
to a server computer from the load balancer. When a job completes it departs
from the server computer. The load balancer is assumed to work at "line
speed", so it does not have a queue. The server computers do have queues
for jobs. Every T seconds the load balancer gets an update from the server
computers. The update is the state information that is the number of jobs
in each server. This is the number of jobs in the server (0 or 1) and number
of jobs queued (0 or more). This state information is needed only for the
SHORT policy.
The three load balancing policies are:
RAND - each job arriving to the load balancer is sent to a uniformly
randomly selected server computer.
RR - each job arriving to the load balancer is sent to the next
in-sequence server computer (i.e., arriving jobs are sent to server 1,
2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, and so on).
SHORT - each job arriving to the load balancer is sent to the server
computer that has the least jobs in the system (service plus queue) as reported
in the last update. In the case of ties (e.g., two or more server computers with
no jobs), the tie is broken uniformly randomly.
The workload and key factors
All jobs arrive following a Poisson distrbution. There are three possible
service time distributions:
Deterministic with all jobs demanding 1 second of service time.
Exponential with a mean service time of 1 second.
Bounded Pareto with mean service time 1 second, minimum service time 0.5
seconds, and maximum service time 100 seconds.
For the experiments you will vary the mean job interarrival time to
control the utilization of the server computers. The server utilization
should be varied from very low (say 10%) to very high (say, near 100% if
possible). You should also vary the delay of posting state information
from instantaneous to 10 seconds.
Performance measures of interest
The key performance measure of interest is response time. This is the
time from a job arriving at the load balancer to departing from a server
computer.
Queue overflow
The maximum queue length any server is assumed to be 100 jobs. If during
a simulation run the maximum queue length is exceeded in any server, the
system is considered "broken". This will occur when the offered load is
high and/or the load balancing scheme is not good.
Knowledge of state information
For the SHORT policy the load balancer needs to know the state of the
server computers. Here state is defined as number of jobs in service
(0 or 1) plus number of jobs queued (0 or more). This state information
can be known "instantaneously" by the load balancer for the no delay
case, or be posted periodically every T seconds to the load balancer for
the delay case.
Project Deliverables
Each team of two students (students may work individually if they wish) will
deliver the following:
A maximum five page paper written in IEEE conference paper format
and style describing the problem, questions, system modeled, simulation
model and workload, model validation, experiments conducted, experiment
results, related work, conclusions, and list of references. The final paper
must be submitted as a PDF file.
The source code for the simulation model in buildable form (so that the
results can be reproduced).
Project Grading
Project grading is as follows:
Content is 80 points
Design of model -- 10 points
Validation of model -- 10 points
Design and execution of experiments -- 10 points
Output analysis and conclusions -- 10 points
Correct results -- 40 points
Presentation is 20 points
Organization, grammar, format, and neatness -- 10 points
Related work and references -- 10 points
Incorrectly documented source code deducts up to 20 points
Up to 20 extra credit points are possible if the student proposes, describes,
and evaluates their own load balancing policy (in addition to RANDOM,
RR, and SHORT). The new policy should show performance better than the
three policies assigned and be based on sound engineering.
Notes
Some notes for the projects are:
You can find a sample manuscript and a template for IEEE
Conference papers here (PDF) and
here (DOC). An example paper formatted in
the correct style is here (PDF) and
here (DOC).
The coding style guidelines you must follow are
here.
When in doubt about style (e.g., correct format for references),
the
IEEE-CS Style Guide is the master reference.