Partitioning 2 Outline Goal Fiduccia-Mattheyses Algorithm Approach

Slides:



Advertisements
Similar presentations
1+eps-Approximate Sparse Recovery Eric Price MIT David Woodruff IBM Almaden.
Advertisements

List Ranking on GPUs Sathish Vadhiyar. List Ranking on GPUs Linked list prefix computations – computations of prefix sum on the elements contained in.
Clustering k-mean clustering Genome 559: Introduction to Statistical and Computational Genomics Elhanan Borenstein.
Minimum Clique Partition Problem with Constrained Weight for Interval Graphs Jianping Li Department of Mathematics Yunnan University Jointed by M.X. Chen.
Midwestern State University Department of Computer Science Dr. Ranette Halverson CMPS 2433 – CHAPTER 4 GRAPHS 1.
1 Accessing nearby copies of replicated objects Greg Plaxton, Rajmohan Rajaraman, Andrea Richa SPAA 1997.
Greedy vs Dynamic Programming Approach
CSCE Review—Fortran. CSCE Review—I/O Patterns: Read until a sentinel value is found Read n, then read n things Read until EOF encountered.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 20, 2008 Partitioning (Intro, KLFM)
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
Chapter 2 – Netlist and System Partitioning
Placement 1 Outline Goal What is Placement? Why Placement?
EDA (CS286.5b) Day 5 Partitioning: Intro + KLFM. Today Partitioning –why important –practical attack –variations and issues.
CS294-6 Reconfigurable Computing Day 13 October 6, 1998 Interconnect Partitioning.
CS267 L15 Graph Partitioning II.1 Demmel Sp 1999 CS 267 Applications of Parallel Computers Lecture 15: Graph Partitioning - II James Demmel
Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem.
Partitioning Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem –Understand.
Chapter 2: Algorithm Discovery and Design
Clustering Unsupervised learning Generating “classes”
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
Maps A map is an object that maps keys to values Each key can map to at most one value, and a map cannot contain duplicate keys KeyValue Map Examples Dictionaries:
Graph partition in PCB and VLSI physical synthesis Lin Zhong ELEC424, Fall 2010.
CAFE router: A Fast Connectivity Aware Multiple Nets Routing Algorithm for Routing Grid with Obstacles Y. Kohira and A. Takahashi School of Computer Science.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: January 28, 2015 Partitioning (Intro, KLFM)
Learning CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Scott Perryman Jordan Williams.  NP-completeness is a class of unsolved decision problems in Computer Science.  A decision problem is a YES or NO answer.
Graph Partitioning Problem Kernighan and Lin Algorithm
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
CSE 494: Electronic Design Automation Lecture 4 Partitioning.
Neural Networks Ellen Walker Hiram College. Connectionist Architectures Characterized by (Rich & Knight) –Large number of very simple neuron-like processing.
Approximate Frequency Counts over Data Streams Gurmeet Singh Manku, Rajeev Motwani Standford University VLDB2002.
Non-Preemptive Access to Shared Resources in Hierarchical Real-Time Systems Marko Bertogna, Fabio Checconi, Dario Faggioli CRTS workshop – Barcelona, November,
Computer Science 101 Fast Searching and Sorting. Improving Efficiency We got a better best case by tweaking the selection sort and the bubble sort We.
Algorithms and Algorithm Analysis The “fun” stuff.
Elementary Sorting Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
Ho-Lin Chang, Hsiang-Cheng Lai, Tsu-Yun Hsueh, Wei-Kai Cheng, Mely Chen Chi Department of Information and Computer Engineering, CYCU A 3D IC Designs Partitioning.
10/25/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 3. Circuit Partitioning.
CSC 211 Data Structures Lecture 13
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 23, 2002 Partitioning (Intro, KLFM)
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
Algorithms 2005 Ramesh Hariharan. Algebraic Methods.
Circuit Partitioning Divides circuit into smaller partitions that can be efficiently handled Goal is generally to minimize communication between balanced.
Computer Science 101 Fast Algorithms. What Is Really Fast? n O(log 2 n) O(n) O(n 2 )O(2 n )
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 9: February 9, 2004 Partitioning (Intro, KLFM)
FPGA-Based System Design: Chapter 7 Copyright  2004 Prentice Hall PTR Topics n Multi-FPGA systems.
ICS 252 Introduction to Computer Design
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 6: January 30, 2013 Partitioning (Intro, KLFM)
Example Apply hierarchical clustering with d min to below data where c=3. Nearest neighbor clustering d min d max will form elongated clusters!
CSE 144 Project. Overall Goal of the Project Implement a physical design tool for a two- row standard cell design
1 مرتضي صاحب الزماني Partitioning. 2 First Project Synthesis by Design Compiler Physical design by SoC Encounter –Use tutorials in \\fileserver\common\szamani\EDA.
CHAPTER 51 LINKED LISTS. Introduction link list is a linear array collection of data elements called nodes, where the linear order is given by means of.
1 Data Structures and Algorithms Graphs. 2 Graphs Basic Definitions Paths and Cycles Connectivity Other Properties Representation Examples of Graph Algorithms:
Theory of Computational Complexity Yusuke FURUKAWA Iwama Ito lab M1.
Partitioning Jong-Wha Chong Wireless Location and SOC Lab. Hanyang University.
Multiway Search Trees Data may not fit into main memory
VLSI Quadratic Placement
Accessing nearby copies of replicated objects
A Linear-Time Heuristic for Improving Network Partitions
Multi-Way Search Trees
Instructor: Shengyu Zhang
CSE 589 Applied Algorithms Spring 1999
EE5780 Advanced VLSI Computer-Aided Design
3.4 Push-Relabel(Preflow-Push) Maximum Flow Alg.
8/04/2009 Many thanks to David Sun for some of the included slides!
Applied Discrete Mathematics Week 6: Computation
A Fundamental Bi-partition Algorithm of Kernighan-Lin
Rusakov A. S. (IPPM RAS), Sheblaev M.
Invitation to Computer Science 5th Edition
A Linear-Time Heuristic for Improving Network Partitions
Presentation transcript:

Partitioning 2 Outline Goal Fiduccia-Mattheyses Algorithm Approach Example Algorithm Properties Goal Understand Fidducia-Mattheyses partitioning algorithm

Fiduccia-Mattheyses Algorithm Approach move one cell at a time between partitions A and B less restrictive than pair moves no longer need to maintain partition size balance use special data structures to minimize cell gain updates only move cells once per pass Complexity prove constant number of updates per cell per pass runtime per pass = O(P) - P pins/terminals vs. O(n2) for group migration small (3-5) number of passes to converge estimate total time is O(PlogP) more pins than nets usually more pins than cells

Definitions ni - number of cells on neti si - size (area) of celli smax - largest cell = max(si) S - total size of cells = sum(si) pi - number of pins on celli pmax - most pins on a cell = max(pi) P - total number of pins = sum(pi) C - total number of cells N - total number of nets r - fraction of cell area in partition A CELL - C-entry array, entry is linked list of nets on cell NET - N-entry array, entry is linked list of cells on net

Cell Gain Cell Gain Gain Data Structure gi - reduction in cutset by moving celli label each cell with its gain -pi <= gi <= pi -pmax <= gi <= pmax Gain Data Structure BUCKET array of cell gains one per partition O(1) access to cells of a given gain MAXGAIN tracks cells of max gain remove cell once it has moved cells move once per pass gain does not matter after that +2 +1 -1 MAX GAIN 1 2 C Cell # +pmax -pmax BUCKET CELL

Critical Nets Minimize cell gain updates Critical nets if all cells are updated on each move - O(C2) algorithm only cells that share a net with a moved cell must be updated but big net implies many moves and many updates only cells on critical nets must be updated Critical nets moving a cell would change cutstate cutstate - whether net is cut or not critical only if net has 0 or 1 cells in A or B A=0, B=3 critical A=1, B=2 critical A=2, B=2 not critical

Partition Balance Control size balance between partitions otherwise all cells move to one partition cutset = 0 Balance criterion rS - smax <= |A| <= rS + smax permits some “wiggle room” for cells to move yes no

Algorithm Initially place cells randomly into A and B Compute cell gains Algorithm for each pass for all cells in A and B of maximum gain whose move would not cause imbalance choose one with best balance result - the base cell if none qualify, quit pass move to opposite partition and lock (remove from BUCKET) unlocked cells are free cells update cell gains and MAXGAIN pointer Repeat passes until no moves occur unlock all cells at beginning of pass

Update Cell Gains F = “from” partition of base cell T = “to” partition of base cell FT(n) = # free T cells of net n FF(n) = # free F cells of net n LT(n) = # locked T cells of net n LF(n) = # locked F cells of net n for each net n on base cell do if LT(n) == 0 if FT(n) == 0 UpdateGains(NET(n)) else if FT(n) == 1 UpdateGains(NET(n)) FF(n)-- LT(n)++ if LF(n) == 0 if FF(n) == 0 UpdateGains(NET(n)) else if FF(n) == 1 UpdateGains(NET(n))

Example Initial partition cutset = 3 si = 1, r = 0.5, 1 <= |A| <= 3 Final partition cutset = 1 +3 +1 +1 -1 L -3 L +1 a b c d b a c d - b, c are highest-gain candidates - choose b, move and lock - recompute gains for a and b - no candidates qualify - quit pass - second pass - quit L +1 +1 -1 b a c d -1 -3 -1 +1 - a, c are highest-gain candidates - choose c, move and lock - recompute gains for a, d b a c d

Properties of Algorithm Fast O(PlogP) constant factors are small arrays, pointer access Space Efficient 5 words/net overhead 4 words/cell overhead small constant overhead Suboptimal gets stuck in local minima any one move has negative gain need multiple moves for positive gain Example moving a or b results in -3 or -4 gain moving both a and b results in +1 gain a -3 -3 -4 -4 b