partitioning 1 outline –what is partitioning –partitioning example –partitioning theory...

11
Partitioni ng 1 Outline What is Partitioning Partitioning Example Partitioning Theory Partitioning Algorithms Goal Understand partitioning problem Understand partitioning algorithms

Post on 22-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Partitioning 1

• Outline– What is Partitioning

– Partitioning Example

– Partitioning Theory

– Partitioning Algorithms

• Goal– Understand partitioning problem

– Understand partitioning algorithms

Page 2: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

What is Partitioning

• Divide a design into smaller pieces– based on a set of constraints

• Constraints– amount of design in a partition

– number of nets to/from partition

– number of partitions allowed

– balance between partition sizes

– weight nets crossing partition boundaries

• Applications– divide large design into multiple packages

– place circuit components on a chip or board

Page 3: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Partitioning Example

• Constraints– 12 transistors per package

– 7 pins per package

– few packages as possible

– nets of equal weight

• Bounds– 30 xistors => >=3 packages

– 21 terminals => <=3 packages

4

44

6

6

6

4

44

6

6

6

12 xistors7 pins 12 xistors

5 pins

6 xistors4 pins

4

44

6

6

6

12 xistors7 pins

10 xistors6 pins

8 xistors5 pins

etc.

Page 4: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Partitioning Theory

• Partitioning is NP-complete

A finite set A and a "size" s(a) Z+ for each a A.Is there a subset A' A such that

s(a)a A'

= s(a)a A - A'

?

Page 5: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Partitioning Theory

• Partitioning Set Formulation– V a set of nodes (components)

– each node r having area a(r)

– X a set of nodes (terminals) external to V

– S = (S1, S2, ..., SN) a set of subsets of V U X

» Si correspond to nets

– partition V into disjoint subsets V1, V2,..., Vk such that

» area of nodes in Vi <= Ai

» number of sets in S which have nodes external and internal to Vi is <= Ti, (pin count)

• Other formulations– graphs - weighted nets, edges

– connection matrix - eigenvectors

Page 6: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Partitioning Algorithms

• Direct– seed each module, grow based on constraints

• Group Migration– randomly place components, then move between partitions

• Metric Allocation– goodness metric for each component pair, partition to

minimize metric

• Simulated Annealing– shuffle components among partitions to minimize cost

function, permit uphill moves to get around local minima

Page 7: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Direct Partitioning

place a component r from V into each partition Vi

– pick relatively independent components

for each remaining component r in V {

for each Vi with area of nodes <= Ai and number of sets in S which have nodes external and internal to Vi <= Ti,

compute cost of placing r in Vi

place r in lowest-cost Vi

}

• Complexity– O(V*k)

– assumes placement cost computation is O(1)

• Issues– sensitive to initial seeding

– sensitive to component examination order

– gets stuck in local minimum

Page 8: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Direct Partitioning Example

AB

C

D

E

F

G A

B CD

E

F

G

D

A

D

A

ED

A

E

B

E

B

A

B CD

E

C

G, F

Page 9: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Group Migration

1. Partition nodes into groups A and B

2. For every a in A, and every b in B {

compute change in terminal counts Da and Db that occur if a and b are swapped.}

– set queue to empty and i = 1.

3. Select from all pairs (a, b) the pair (ai, bi) that gives most reduction in total terminal count when swapped.– add to queue– save the improvement in terminal count as gi

4. Remove ai from A and bi from B, recalculate Da and Db.– if A and B not empty, i++, go to 3.

5. Find k such that G = sum of g1 to gk is a minimum.

– swap a1,...ak and b1,...bk.– if G < 0 and k > 0, go to 2, else stop.

Page 10: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Group Migration Example

AB

C

D

E

F

G

A

B C

DE

F

G

Initial Partition, Cutset = 6

(A,E) 0 -3(A,F) -1 0(A,G) -1 0

(D,E) -2 -3(D,F) -2 +1(D,G) -2 +1

(B,E) +1 -3(B,F) 0 0(B,G) 0 0

(C,E) +1 -3(C,F) 0 0(C,G) 0 0

Queue1: (D,E) -52: (A,F) +1 (-1,+3)...

Minimum G=-5 at k=1Swap D and E

Next iteration:all pairs positivek=0, quit

Da Db Da Db

AB

C F

G

Final Partition, Cutset = 1

removed(D,E)

Page 11: Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem

Group Migration

• Complexity– O(n2) per iteration in worst case for n nodes

» steps 2, 3

– converges in only a few iterations

– newer versions are O(nlogn) - discuss in next lecture

• Application to partitioning– use bisection

– divide into two partitions, then split those partitions, etc.

– partition area is ignored, partitions remain balanced

» subdivide until partition area is small enough

– algorithm also called min-cut since it minimizes terminals