EDA (CS286.5b) Day 6 Partitioning: Spectral + MinCut.

Slides:



Advertisements
Similar presentations
ECE 667 Synthesis and Verification of Digital Circuits
Advertisements

ECE Longest Path dual 1 ECE 665 Spring 2005 ECE 665 Spring 2005 Computer Algorithms with Applications to VLSI CAD Linear Programming Duality – Longest.
Introduction to Algorithms
Introduction to Markov Random Fields and Graph Cuts Simon Prince
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Global Flow Optimization (GFO) in Automatic Logic Design “ TCAD91 ” by C. Leonard Berman & Louise H. Trevillyan CAD Group Meeting Prepared by Ray Cheung.
Online Social Networks and Media. Graph partitioning The general problem – Input: a graph G=(V,E) edge (u,v) denotes similarity between u and v weighted.
Lectures on Network Flows
Chapter 7 Maximum Flows: Polynomial Algorithms
10/11/2001Random walks and spectral segmentation1 CSE 291 Fall 2001 Marina Meila and Jianbo Shi: Learning Segmentation by Random Walks/A Random Walks View.
Graph Clustering. Why graph clustering is useful? Distance matrices are graphs  as useful as any other clustering Identification of communities in social.
Graph Clustering. Why graph clustering is useful? Distance matrices are graphs  as useful as any other clustering Identification of communities in social.
Lecture 21: Spectral Clustering
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: March 4, 2008 Placement (Intro, Constructive)
Penn ESE525 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 27, 2008 Partitioning 2 (spectral, network flow, replication)
Placement of Integration Points in Multi-hop Community Networks Ranveer Chandra (Cornell University) Lili Qiu, Kamal Jain and Mohammad Mahdian (Microsoft.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 20, 2008 Partitioning (Intro, KLFM)
EDA (CS286.5b) Day 17 Sequential Logic Synthesis (FSM Optimization)
EDA (CS286.5b) Day 5 Partitioning: Intro + KLFM. Today Partitioning –why important –practical attack –variations and issues.
Computer Algorithms Integer Programming ECE 665 Professor Maciej Ciesielski By DFG.
CS294-6 Reconfigurable Computing Day 13 October 6, 1998 Interconnect Partitioning.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 11, 2008 Static Timing Analysis and Multi-Level Speedup.
EDA (CS286.5b) Day 11 Scheduling (List, Force, Approximation) N.B. no class Thursday (FPGA) …
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
CS294-6 Reconfigurable Computing Day 15 October 13, 1998 LUT Mapping.
EDA (CS286.5b) Day 7 Placement (Simulated Annealing) Assignment #1 due Friday.
Penn ESE525 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 18, 2009 Partitioning 2 (spectral, network flow)
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 27, 2008 Clustering (LUT Mapping, Delay) Please work preclass example.
Graph-Cut Algorithm with Application to Computer Vision Presented by Yongsub Lim Applied Algorithm Laboratory.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 17: March 30, 2009 Clustering (LUT Mapping, Delay)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 18, 2009 Static Timing Analysis and Multi-Level Speedup.
EDA (CS286.5b) Day 18 Retiming. Today Retiming –cycle time (clock period) –C-slow –initial states –register minimization.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
CSE 242A Integrated Circuit Layout Automation Lecture: Partitioning Winter 2009 Chung-Kuan Cheng.
CS774. Markov Random Field : Theory and Application Lecture 13 Kyomin Jung KAIST Oct
Analytic Placement. Layout Project:  Sending the RTL file: −Thursday, 27 Farvardin  Final deadline: −Tuesday, 22 Ordibehesht  New Project: −Soon 2.
Inoculation Strategies for Victims of Viruses and the Sum-of-Squares Partition Problem James Apnes, Kevin Change, and Aleksandr Yampolskiy.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 23, 2002 Partitioning (Intro, KLFM)
Penn ESE525 Spring DeHon 1 ESE535: Electronic Design Automation Day 6: February 4, 2014 Partitioning 2 (spectral, network flow)
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 23: April 20, 2015 Static Timing Analysis and Multi-Level Speedup.
Learning Spectral Clustering, With Application to Speech Separation F. R. Bach and M. I. Jordan, JMLR 2006.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 9: February 9, 2004 Partitioning (Intro, KLFM)
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 10: February 11, 2002 Partitioning 2 (spectral, network flow, replication)
Graph Partitioning using Single Commodity Flows
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Chapter 13 Backtracking Introduction The 3-coloring problem
Theory of Computing Lecture 12 MAS 714 Hartmut Klauck.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 4, 2011 Static Timing Analysis and Multi-Level Speedup.
Approximation Algorithms Duality My T. UF.
CS 312: Algorithm Design & Analysis Lecture #29: Network Flow and Cuts This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported.
Approximation Algorithms based on linear programming.
Normalized Cuts and Image Segmentation Patrick Denis COSC 6121 York University Jianbo Shi and Jitendra Malik.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
Randomized Min-Cut Algorithm
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
3.3 Network-Centric Community Detection
Algorithms (2IL15) – Lecture 7
ESE535: Electronic Design Automation
Fast Min-Register Retiming Through Binary Max-Flow
CS137: Electronic Design Automation
Presentation transcript:

EDA (CS286.5b) Day 6 Partitioning: Spectral + MinCut

Today Alternate views of partitioning Two things we can solve optimally –(but don’t exactly solve our original problem) Techniques –Linear Placement w/ squared wire lengths –Network flow MinCut

Optimization Target Place cells In linear arrangement Wire length between cells: –distance=X i - X j –cost is sum of distance squared Want to pick X i ’s to minimize cost

Spectral Partitioning Minimize Squared Wire length -- 1D layout Start with connection array C (c i,j ) “Placement” Vector X for x i placement cost = 0.5*  (all I,j) (x i - x j ) 2 c i,j cost sum is X’BX –B = D-C –D=diagonal matrix, d i,i =  (over j) c i,j

Spectral Partition Constraint: X’X=1 –prevent trivial solution all x i ’s same Minimize cost=X’BX w/ constraint –minimize L=X’BX- (X’X-1) –  L/  X=2BX-2 X=0 –(B- I)X=0 –X => Eigenvector of B –cost is Eigenvalue

Spectral Partitioning X (x i ’s) continuous use to order nodes –real problem wants to place at discrete locations –this is one case where can solve LP problem (continuous x’s) then move back to closests discrete point form cut partition from ordering

Spectral Ordering Midpoint bisect isn’t necessarily best place to cut, consider: K (n/4) K (n/2)

Spectral Partitioning Options Can bisect by choosing midpoint –(not strictly optimizing for minimum bisect) Can relax cut critera –min cut w/in some  of balance With iteration, can reweigh connections to change cost model being optimized –linear –(distance) 1.X

Spectral Options (2) Ratio Cut –minimize (cut/|A||B|) idea tradeoff imbalance for smaller cut –more imbalance =>smaller |A||B| –so cut must be much smaller to accept Maybe: encourage “closeness” –by weighting connection between nodes –(have to allow some nodes to not be close)

Spectral vs. FM From Hauck/Boriello ‘96

Improving Spectral More Eigenvalues –look at clusters in n-d space –5--70% improvement over EIG1

Spectral Note Unlike KLFM, attacks global connectivity characteristics Good for finding “natural” clusters –hence use as clustering heuristic for multilevel algorithms (both types)

Spectral Theory There are conditions under which spectral is optimal [Boppana/FOCS28 (1987)] –B=A+diag(d) –g(G,d)=[sum(B)-n* (B S )]/4 –B S mapping Bx to closest point on S –h(G) = max d g(G,d) h(G) lower bound on cut size

Spectral Theory Boppana paper gives a probabilistic model for graphs –model favors graphs with small cuts –necessary since truly random graph has cut size O(n) –shows high likelihood of bisection being lower bound In practice –known to be very weak for graphs with large cuts

Max Flow MinCut

MinCut Goal Cut find minimum flow cut between a source and a sink –no balance guarantee

MaxFlow Set all edge flows to zero –F[u,v]=0 While there is a path from s,t –(breadth-first-search) –for each edge in path f[u,v]=f[u,v]+1 –f[v,u]=-f[u,v] O(|E|*cutsize) Our problem simpler than general case CLR

Directionallity Construct 1   

Fanout Construct 1     

Balanced Cut Pick a start node and a finish node Compute min-cut start to finish If halves sufficiently balanced, done else –collapse all nodes in smaller half into one node –pick a node adjacent to smaller half –collapse that node into smaller half –repeat from min-cut computation FBB -- Yang/Wong ICCAD’94

Observation Can use residual flow from previous cut when computing next cuts Consequently, work of multiple network flows is only O(|E|*final_cut_cost)

Picking Nodes Optimal: –would look at all s,t pairs –also look at all nodes to collapse into smaller –could formulate as branching search Probably be more clever: –I.e. everything in first group around s (or t) would be there regardless of which s or t picked as kernal –probably similar observations would reduce branching factor on picking node to collapse in

Picking Nodes Randomly pick –(maybe try several starting points) With small number of adjacent nodes, –could afford to branch on all

Approximation Can find 1/3 balanced cuts within O(log(n)) of best cut in polynomial time –algorithm due to Leighton and Rao –exposition in Hochbaum’s Approx. Alg. Bound cut size –Boppana -- lower bound h(G) –Boppana/Spectral cut -- one upper bound –Leighton/Rao -- upper bound

Min Cut Replication After have (once have) kernel sets for each half, determine replication set Given: P 1, P 2 Determine subset of P 1 to replicate into P 2 –(and vice-versa) Algorithm: Hwang+ElGamal / TR CAD v14n1p96

Min Cut Replication To figure out what nodes from P 1 to replicate into P 2 Start with P 1 Add nodes adjacent to P 1, call these I 1,2 Add a start node (connect to inputs of P 1 ) Add a target node (connect to I 1,2 ) Keep original edges contained in P 1 Keep edges from P 1 to I 1,2

Replication Picture start target P1P1 I 1,2 Replication set

Min Cut Replication Perform MaxFlow/MinCut in new graph nodes unreachable from start node form new replication set (those nodes go in P 2, reducing it’s IO) n.b. -- cut minimal, but number of replicated nodes not guaranteed to be minimum

Apply Example?

Big Ideas Divide-and-Conquer Techniques –flow based –numerical/linear-programming based Exploit problems we can solve optimally