Ion I. Mandoiu Ph.D. Defense of Research August 11, 2000 Approximation Algorithms for VLSI Routing.
-
date post
22-Dec-2015 -
Category
Documents
-
view
218 -
download
0
Transcript of Ion I. Mandoiu Ph.D. Defense of Research August 11, 2000 Approximation Algorithms for VLSI Routing.
Ion I. MandoiuIon I. Mandoiu
Ph.D. Defense of ResearchPh.D. Defense of Research
August 11, 2000August 11, 2000
Approximation Algorithms for
VLSI Routing
Approximation Algorithms for
VLSI Routing
VLSI Routing VLSI Routing
VLSI Physical Design
Electrical description Geometrical layout
VLSI Global Routing
Given: locations for net terminals
Find: tree interconnection for each net
Minimizing:• total length (RSMT problem)• skew (ZST problem)• number of buffers (MSPT problem)• …
Overview of Results Overview of Results
Single-net routing:
• New RSMT heuristic• runs 10 times faster, and gives higher-quality solutions than previous best RSMT heuristic
• Improved ZST approximation algorithms• very fast: O(n log n) running time
• Tight analysis of the MST heuristic for MSPT
Multi-net routing:
• MCF-based approximation algorithms for global buffering via buffer blocks
Key Results on RSMT ProblemKey Results on RSMT Problem
• Reduction to discrete grid [H66]
• NP-hard [GJ77]
• Iterated 1-Steiner heuristic [KR90]• Greedily adds Steiner points to the tree • Almost 11% improvement over MST on average• Fast batched implementation (BI1S)
• Exact algorithm: GeoSteiner 3.0 [WWZ98]• Branch-and-cut• 11.5% improvement over MST on average• Average speed comparable to BI1S!!!
The IRV Algorithm: High-Level IdeaThe IRV Algorithm: High-Level Idea
• Iterative method: in each step add/remove one Steiner point to/from tree
• Unlike Iterated 1-Steiner heuristic, do not insist on choosing best Steiner point in each step
• Steiner point to be added is chosen using a
powerful LP formulation of the Steiner tree
problem in graphs, called the bidirected cut
formulation
Adaptation to General GraphsAdaptation to General Graphs
• Remove Steiner-Steiner edges from graph G
• Run RV algorithm on remaining graph
• Repeat, treating Steiner vertices picked by the RV algorithm as terminals
• Stop when no new Steiner vertices are picked
Experimental SetupExperimental Setup
• Test bed for experiments:
• Random instances ranging in size between 10 and 250
terminals, 1000 instances/size
• Instances extracted from industrial designs
• Measure of quality: percent improvement over MST
100MSTcost
heuristiccostMSTcost
Average Improvement over MSTAverage Improvement over MST
10
10.5
11
11.5
10 60 110 160 210
No. Terminals
% Im
pro
v. o
ve
r M
ST
GeoSteiner BI1S IRV
Average CPU TimeAverage CPU Time
0
5
10
15
20
10 60 110 160 210
No. Terminals
Avg
. CP
U t
ime
(sec
.)
GeoSteiner BI1S IRV
Results on Industrial InstancesResults on Industrial Instances
0
50
100
150
109 185 188 245 264 340 406 556 573
CP
U t
ime
(sec
.)
GeoS. BI1S IRV
No Term:
Zero-Skew TreesZero-Skew Trees
Zero-Skew Tree: rooted tree in which all root-to-leaf
paths have the same length
Used in VLSI clock routing & network multicasting
The Zero-Skew Tree Problem The Zero-Skew Tree Problem
Zero-Skew Tree Problem
Given: set of terminals in rectilinear plane
Find: zero-skew tree with minimum total length
Previous results [CKKRST99]• NP-hard for general metric spaces• factor 2e ~ 5.44 approximation
Our results:• factor 4 approximation for general metric spaces• factor 3 approximation for rectilinear plane
ZST Lower-BoundZST Lower-Bound
R
rrNOPT0
d)( (CKKRST 99)
N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-BoundZST Lower-Bound
R
rrNOPT0
d)( (CKKRST 99)
N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-BoundZST Lower-Bound
R
rrNOPT0
d)( (CKKRST 99)
N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-BoundZST Lower-Bound
R
rrNOPT0
d)( (CKKRST 99)
N(r)=min. # of balls of radius r that cover all sinks
ZST Lower-BoundZST Lower-Bound
R
rrNOPT0
d)( (CKKRST 99)
N(r)=min. # of balls of radius r that cover all sinks
Constructive Lower-BoundConstructive Lower-Bound
Computing N(r) is NP-hard, but …
Lemma: For any ordering of the terminals, if
},...,{MinDist2
11 ittr
ntt ,...,1
irN )( then
Stretching Rooted Spanning TreesStretching Rooted Spanning Trees• ZST root = spanning tree root
)(rootdelayT
where = max path length from to a leaf of
)(rootdelayT• ZST root-to-leaf path length =
)(vdelayT v vT
T
Stretching Rooted Spanning TreesStretching Rooted Spanning Trees
T
)(rootdelayTLoop length =
)(rootdelayT
Stretching Rooted Spanning TreesStretching Rooted Spanning Trees
T
)(rootdelayTSum of loop lengths =
)(rootdelayT
Zero-Skew Spanning Tree ProblemZero-Skew Spanning Tree Problem
)()( TdelayTlength
Theorem: Every rooted spanning tree can be
stretched to a ZST of total length
where
T
)()()(
TVv T vdelayTdelay
Zero-Skew Spanning Tree Problem: Find rooted
spanning tree minimizing )()( TdelayTlength T
How good are the MST and Min-Star?How good are the MST and Min-Star?
)(Nlength
.
..
MST: min length, huge delay
)( 2Ndelay
0
1
2
N-1
3
N-2
)log( NNOPT
)(Nlength …
…
Star: min delay, huge length
)1(delay
)1(OPT
The Rooted-Kruskal AlgorithmThe Rooted-Kruskal Algorithm
• While 2 roots remain:
• Initially each terminal is a rooted tree; d(t)=0 for all t
• Pick closest two roots, t & t’, where d(t) d(t’)
t’ t
• t’ becomes child of t, root of merged tree is t
• d(t) max{ d(t), d(t’) + dist(t ,t’) }
t’ t
The Rooted-Kruskal AlgorithmThe Rooted-Kruskal Algorithm
• While 2 roots remain:
• Initially each terminal is a rooted tree; d(t)=0 for all t
• Pick closest two roots, t & t’, where d(t) d(t’)
• t’ becomes child of t, root of merged tree is t
• d(t) max{ d(t), d(t’) + dist(t ,t’) }
How good is Rooted-Kruskal?How good is Rooted-Kruskal?
• While 2 roots remain:
• Initially each terminal is a rooted tree; d(t)=0 for all t
• Pick closest two roots, t & t’, where d(t) d(t’)
• t’ becomes child of t, root of merged tree is t
• d(t) max{ d(t), d(t’) + dist(t ,t’) }
Lemma: delay(T) length(T)
• Initially each terminal is a rooted tree; d(t)=0 for all t
• d(t) max{ d(t), d(t’) + dist(t ,t’) }
At the end of the algorithm, d(t)=delay (t )TT
• Pick closest two roots, t & t’, where d(t) d(t’)
• Initially each terminal is a rooted tree; d(t)=0 for all t
At the end of the algorithm, d(t)=delay (t )
When edge (t ,t’) is added to T:
• length(T) increases by dist(t ,t’)
• delay(T) increases by at most dist(t ,t’)
How good is Rooted-Kruskal?How good is Rooted-Kruskal?
• While 2 roots remain:
• Initially each terminal is a rooted tree; d(t)=0 for all t
• Pick closest two roots, t & t’, where d(t) d(t’)
• t’ becomes child of t, root of merged tree is t
• d(t) max{ d(t), d(t’) + dist(t ,t’) }
Lemma: length(T) 2 OPT
• Pick closest two roots, t & t’, where d(t) d(t’)
Number terminals in reverse order of becoming non-roots
N
iitt
21 },...,{MinDistlength(T) =
Factor 4 ApproximationFactor 4 Approximation
• Length after stretching = length(T) + delay(T)
• delay(T) length(T)
• length(T) 2 OPT
ZST length 4 OPT
Algorithm: Rooted-Kruskal + Stretching
Stretching Using Steiner PointsStretching Using Steiner Points
TStretchedT
)()( TdelayTlength )()( TdelayTlength )(2
1Tdelay
Factor 3 ApproximationFactor 3 Approximation
• Length after stretching = length(T) + ½ delay(T)
• delay(T) length(T)
• length(T) 2 OPT
ZST length 3 OPT
Algorithm: Rooted-Kruskal + Improved Stretching
Practical ConsiderationsPractical Considerations
• For a fixed topology, minimum length ZST can be found in linear time using the Deferred Merge Embedding (DME) algorithm [Eda91, BK92, CHH92]
• Practical algo: Rooted-Kruskal + Stretching + DME
Theorem: Both stretching algorithms lead to the
same ZST topology when applied to the Rooted-
Kruskal tree
Running TimeRunning Time
• Stretching: O(N logN)
• Rooted-Kruskal: O(N logN) using the dynamic closest-pair data structure of [B98]
• DME: O(N) [Eda91, BK92, CHH92]
O(N logN) overall
Extension to Other Metric SpacesExtension to Other Metric Spaces
Everything works as in rectilinear plane, except:2• Running time of Rooted-Kruskal becomes O(N )
• No equivalent of DME known for other spaces
• The space must be metrically convex to apply second stretching algorithm
Bounded-Skew TreesBounded-Skew Trees
b-bounded-skew tree: difference between length of
any two root-to-leaf paths is at most b
Bounded-Skew Tree Problem: given a set of terminals
and bound b>0, find a b-bounded-skew tree with
minimum total length
Previous approximation guarantees [CKKRST 99]:• factor 16.11 for arbitrary metrics• factor 12.53 for rectilinear plane
Our results: factor 14, resp. 9 approximation
BST construction idea + lower boundBST construction idea + lower bound
Two stage BST construction:
• Cover terminals by disjoint b-bounded-skew trees
• Connect roots via a zero-skew tree
Lemma: For any set of terminals, and anyS SW
)1|(|)( WbBSTOPTWZSTOPT
Constructing the tree coverConstructing the tree cover
• T MST on terminals, rooted arbitrarily
• W • While T do:
• Find leaf of T furthest from the root
• Find its highest ancestor u that still has delay b
• Add u to W
• Add T to the tree cover and delete it from Tu
Lemma: )()1|(| MSTlengthWb
BST ApproximationBST Approximation
Algorithm: Output tree cover approximate ZST on W
)factorion approximat ZST(
)()()(
WZSTOPTMSTlengthBSTlength
)(
)1|(|)(
MSTlengthBSTOPT
WbBSTOPTWZSTOPT
)ratioSteiner (
)(
BSTOPTSMTOPTMSTlength
BST ApproximationBST Approximation
BSTOPTBSTlength )()( Theorem:
ionapproximat 9factor 5.1,3 Rectilinear Plane:
ionapproximat 14factor 2,4 Arbitrary metric spaces:
ratioSteiner
factorion approximat ZST
Summary of Results on ZST/BSTSummary of Results on ZST/BST
Problem Zero-Skew Bounded-skew
Metric General Rectilinear General Rectilinear
Previous
factor5.44 16.11 12.53
New
factor4 3 14 9
The MSPT ProblemThe MSPT Problem
MSPT Problem: find bounded edge-length Steiner
tree with min. number of Steiner points
The MST Heuristic for MSPTThe MST Heuristic for MSPT
Find MST, subdivide edges to meet edge-length constraints
Our result
Approximation factor of MST heuristic is D-1, where D is the MST number of the space (maximum possible degree of a minimum-degree MST)
Factor 3 in rectilinear plane, 4 in Euclidean plane
[LX99] Approximation factor 5 in Euclidean plane
Global Buffering ProblemGlobal Buffering Problem Given:• L/U bounds on edge lengths
• buffer block locations and capacities
• list of nets, each net has• upper-bound and parity requirement on # buffers
for each source-sink path• non-negative weight (criticality coefficient)
Find: routing of a max. weight set of nets s.t.• each edge length is between L and U• # buffers for any source-sink pair satisfy given
constraints• # of nets passing through buffer block b
capacity(b)
Integer MTMCF FormulationInteger MTMCF Formulation
Udist(u,v)LE(u,v)
VEVG
iff and
BlocksBuffer terminal where),(
{0,1,2})( through passes times# ),(
}1,0{)(
)(c)(),(..
)(max
uTuT
Tf
uTfuTts
Tf
Approach: solve LP relaxation + randomized rounding
MTMCF ApproximationMTMCF ApproximationGarg/Konemann & Fleisher (edge-cap. MCF)
-MCF algorithm:
w(v) = , f = 0
For i = 1 to N do
For k = 1,…,K do
Find min. weight valid tree T for net k
While w(T) < min{ 1, (1+2)^i} do f(T)= f(T)+1 For every v, w(v) (1+ (T,v)/c(v))*w(v)
End while
End for
End for
Output f/N