Dynamic Graph Partitioning Algorithm

Dynamic Graph Partitioning
Algorithm
Xiaojun Shang
xs2236
abstract

An algorithm to schedule jobs (represented by graphs) over a large cluster of
servers to satisfy load balancing and cost consideration at the same time.

The algorithm comes from paper scheduling storm and streams in the cloud by
Javad Ghaderi, Sanjay Shakkottai and R Srikant.

my work:

Study the paper and relevant references.

Smulate the results of alternative dynamic graph partitioning algorithm given by
the paper.

Tune the crutial parameters in the algorithm to study the trade-off between
minimizing average partitioning cost and average queue length.

Give suggestions about the choice of parameters to get better performance.
introduction to the paper

The paper is motivated by emerging big streaming data processing
paradigms such as the Twitter Storm.

In these problems, we need to handle jobs consist of many different
compute tasks. Each of these tasks should be excuted seperately and
simultaneously. But they also have connections among one another.
That means that there are data flows among these tasks. To excute
one, you may need data from another.

The paper uses graph to represent this kind of job. The nodes in the
graph represent the tasks of the job and edges represent data flows
between nodes.
introduction to the paper

Examples of jobs represented by graphs:
introduction to the paper

To execute such jobs, each node of a graph is mapped to a machine in
a cloud cluster. The communication fabric of the cloud cluster supports
the data flows corresponding to the praph edges.

From the cloud cluster side, there are a collection of machines
interconnected by a communication network. Each machine can
simultaneously support a finite number of graph nodes. (the number
is limited by resources: memory/processing/bandwidth)

In storm, these available resources are called "slots".

Each slot for one node of the graph.
introduction to the paper

Graphs arrive randomly over time to this cloud cluster, and upon
completion, leave the cluster.

The scheduling task is to map the nodes of an incoming graph onto the
free slots in machines to have an efficient cluster operation.
introduction to the paper

Two crucial points:

1. Delay of the system. When jobs arrive, they can either be
immediately served, or queued and served at a later time. Thus, there
is a set of queues representing existing jobs on the system either
waiting for service or receiving service.

2. Job partition cost. For any job, we assume that the cost of data
exchange between two nodes that are inside the same machine is
zero, and the cost of data exchange between two nodes of a graph on
different machines is one.
1
1
0
1
Preparation for the algorithm

templates: An important construct in this paper. A template
corresponds to one possible way in which a graph Gj can be
partitioned and distributed over the machines.
1
0
1
1
0 0
0
1
1
1
0
0
1
1
1
1
Preparation for the algorithm

Configuration: While there are an extremely large number of
templates possible for each graph, only a limited number of templates
can be present in the system at any instant of time.(each slot can be
used for at most one template at any time) Configuration represents
the collection of templates in the system. It contains two parts, actual
templates and virtual templates.

Actual templates: templates in the system corresponding to each job
that is being served.

virtual templates: when a new job arrives or departs, the system can
potentially create a new template that is a pattern of empty slots that
can be filled with a specific job type.
Description of the algorithm

examples:
Preparation for the algorithm

some importance definations
 bA

is the cost of partitioning graph Gj according to template A.
The algorithm's goal:
xA () here is a random variable denoting the fraction of time that a template A is used
in the steady state.
Preparation for the algorithm


The paper develops a new class of low complexity algorithms and
analytically characterize their delay and partitioning costs. In
particular, the algorithms can converge to the optimal solution of the
static graph partitioning problem, by trading-off delay and partitioning
cost.(The proof is in the paper but no time to show).
the  here is the load of graph.

 

Preparation for the algorithm

Firstly we assume graphs of type j arrive according to Poisson process
with rate  j and will remain in the system for an exponentially
distrubuted amount of time with mean 1/  j .
introduction to the algorithm
The algorithm shown in the presentation is an alternative description of
the Dynamic Graph partitioning algorithm by using dedicated clocks.
Each Q j is assigned an independent Poisson clock of rate  'exp( f i (h  Q(t )) /  ).
That means at each time t, the time duration until the tick of the next
clock is an exponiential random variable with parameter  'exp( f i (h  Q(t )) /  )
Description of the algorithm

At the instances of dedicated clocks:
Suppose the dedicated clock of queue Q j makes a tick, then:
1: A virtual template Aj is chosen randomly from currently feasible templates for
graph G j , given the current configuration, using Random Partition Procedure, if
possible. Then this template is added to the configuration with probability exp( 1 b
A
( j)
)
and discarded otherwise. The virtual template leaves the system after an
exponientially distributed time duration with mean 1 /  j.
2: If there is a job of type j in Q j waiting to get service, and a virtual template of type j
is created in step 1, this virtual template is filled by a job from Q j which converts the
virtual templates to an actual template.
Description of the algorithm

At arrival instances:
Suppose a graph of type G j arrives. The job is added to queue

Qj
At departure instances:
1: At the departure instances of actual/vitual templates, the algorithm removes the
corresponding template from the configuration.
2: If this is a departure of an actual template, the job is departed and the
corresponding queue is updated.
Two keys for the algorithm

The rate of the Poisson clock for creating vitual templates
 'exp( f i (h  Q(t )) /  )

The probability to keep the template or not
1
exp( bA( j ) )


In the simulation, we can achieve different performances by tuning the
parameters in these two expressions. In my simulation, I only tuned
alpha, beta and the number of servers, remaining others the same.
simulation
Fixed   0.5 and see the influence of changing  to the partitioning cost
and delay. Start with single-graph input (the seven nodes balanced binary
tree ). The tree is mapped into a cluster of 10 servers and each server
with 4 slots. The here 
is 4, and is 1. 
simulation
Alpha 0.005 beta 0.5
10servers lambda 4
Alpha 0.05 beta 0.5
10servers lambda 4
simulation
Alpha 0.5 beta 0.5
10servers lambda 4
Alpha 5 beta 0.5
10servers lambda 4
simulation

Fix  /  , then tune  to see its influence over the trade-off. Other
conditions remain the same.
1
Alpha 5 beta 5
10servers lambda 4
Alpha 2 beta 2
10servers lambda 4
exp( bA( j ) )

simulation
Alpha 0.6 beta 0.6
10servers lambda 4
Alpha 0.2 beta 0.2
10servers lambda 4
simulation

Now we fixed all the parameters but increase the number of servers
Alpha 0.5 beta 0.5
20servers lambda 9
Alpha 0.5 beta 0.5
30servers lambda 9
simulation

Alpha 0.5 beta 0.5
For multi input(three graphs share the servers) 40servers lambda 6
simulation
Alpha 0.2 beta 0.2
40servers lambda 6
Thank You

Q&A