10/11/2015 1 vlsi physical design automation prof. david pan [email protected] office: aces 5.434...
TRANSCRIPT
![Page 1: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/1.jpg)
04/21/23 1
VLSI Physical Design Automation
Prof. David Pan
Office: ACES 5.434
Placement (2)
![Page 2: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/2.jpg)
204/21/23
Outline
• Wire length driven placement• Main methods
– Simulated Annealing– Partition-based methods– Analytical methods
• Quadratic placement with Gordian-type method
• Force-directed method
• Timing and congestion consideration• Newer trends
![Page 3: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/3.jpg)
304/21/23
Wirelength Estimation Methods
![Page 4: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/4.jpg)
404/21/23
Wirelength Estimation Methods
![Page 5: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/5.jpg)
504/21/23
Analytical Placement
• Write down the placement problem as an analytical mathematical problem
• Solve the placement problem directly• Example:
– Sum of squared wire length is quadratic in the cell coordinates.
– So the wirelength minimization problem can be formulated as a quadratic program.
– It can be proved that the quadratic program is convex, hence polynomial time solvable
![Page 6: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/6.jpg)
604/21/23
Cost x1 1002 x1 x22 x2 2002
x1Cost 2x1 100 2x1 x2
x2Cost 2x1 x2 2x2 200
setting the partial derivatives = 0 we solve for the minimum Cost:
Ax + B = 0
= 04 2 2 4
x1x2
200 400
= 02 1 1 2
x1x2
100 200
x1=400/3 x2=500/3
x2x1
x=100
x=200Toy
Example:
![Page 7: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/7.jpg)
704/21/23
setting the partial derivatives = 0 we solve for the minimum Cost:
Ax + B = 0
= 04 2 2 4
x1x2
200 400
= 02 1 1 2
x1x2
100 200
x1=400/3 x2=500/3
x2x1
x=100
x=200
Interpretation of matrices A and B:
The diagonal values A[i,i] correspond to the number of connections to xiThe off diagonal values A[i,j] are -1 if object i is connected to object j, 0 otherwiseThe values B[i] correspond to the sum of the locations of fixed objects connected to object i
Example:
![Page 8: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/8.jpg)
804/21/23
Why formulate the problem this way?
• Because we can• Because it is trivial to solve• Because there is only one solution• Because the solution is a global optimum• Because the solution conveys “relative order”
information• Because the solution conveys “global position”
information
![Page 9: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/9.jpg)
904/21/23
Gordian: A Quadratic Placement Approach
Global optimization: solves a sequence of quadratic programming problems
Partitioning: enforces the non-overlap constraints
Ref. 1: Gordian: VLSI Placement by Quadratic Programming and slicing Optimization, by J. M. Kleinhans, G.Sigl, F.M. Johannes, K.J. Antreich IEEE Trans. On CAD, March 1991. pp 356-365
Ref. 2: Analytical Placement: A Linear or a Quadratic Objective Function? By G. Sigl, K. Doll, F.M. Johannes, DAC’91 pp 427-423
![Page 10: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/10.jpg)
1004/21/23
Quadratic Placement Formulation
• Quadratic Placement Framework:repeat
Solve the convex quadratic programSpread the cells
until the cells are evenly distributed
ectorsSolution v, cell and cellbetween net theofWeight
cell ofcenter theof sCoordinateLet
yxjiw
i),y(x
ij
ii
ectorsSolution v, cell and cellbetween net theofWeight
cell ofcenter theof sCoordinateLet
yxjiw
i),y(x
ij
ii
22 )()(2
1 cell and cellbetween net theofCost
jijiij yyxxw
ji
22 )()(2
1 cell and cellbetween net theofCost
jijiij yyxxw
ji
const2
1
2
1cost Total yyyxxx T
yTT
xT dQdQ const
2
1
2
1cost Total yyyxxx T
yTT
xT dQdQ
![Page 11: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/11.jpg)
1104/21/23
Solution of the Original QP
![Page 12: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/12.jpg)
1204/21/23
Partitioning
• Find a good cut direction and position.
• Improve the cut value using FM.
![Page 13: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/13.jpg)
1304/21/23
• Before every level of partitioning, do the Global Optimization again with additional constraints that the center of gravities should be in the center of regions.
• Always solve a single QP (i.e., global).
Applying the Idea Recursively
Center of Gravities
![Page 14: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/14.jpg)
1404/21/23
Process of Gordian
(a) Global placement with 1 region (b) Global placement with 4 region (c) Final placements
![Page 15: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/15.jpg)
1504/21/23
Gordian Pseudo-code
![Page 16: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/16.jpg)
1604/21/23
Star Model for Wire Length
![Page 17: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/17.jpg)
1704/21/23
Center of Gravity Constraints
![Page 18: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/18.jpg)
1804/21/23
Solution Methods
![Page 19: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/19.jpg)
1904/21/23
Other Details
• Sometimes, there are too much overlapping between modules (indicating a bad partitioning). In that case, merging 2 sub-partitions and repartition them is required.
• When the size of sub-circuits are small enough, can stop partitioning. Then do a final placement of the sub-circuits according to the design style.
![Page 20: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/20.jpg)
2004/21/23
Repartitioning
![Page 21: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/21.jpg)
2104/21/23
Quadratic Techniques:
Pros:- mathematically well behaved- efficient solution techniques find global optimum- great quality
Cons:- solution of Ax + B = 0 is not a legal placement, so generally
some additional partitioning techniques are required.- solution of Ax + B = 0 is that of the "mapped" problem, i.e.,
nets are represented as cliques, and the solution minimizes wire length squared, not linear wire length unless additionalmethods are deployed
- fixed IOs are required for these techniques to work well
![Page 22: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/22.jpg)
2204/21/23
Linear vs. Quadratic Objective Function
Differences between linear and quadratic objective function
A B Cfixed movable fixed
A B Cfixed fixedmovable
a) Quadratic objective function
b) Linear objective function
![Page 23: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/23.jpg)
2304/21/23
Linear vs. Quadratic Objective Function (Cont’d)
Quadratic objective function tends to make very long net shorter than linear objective function does, and let short nets become slightly longer
row1
row2
row3
row4
row1
row2
row3
row4
A
B
A
B
Linear objective function Quadratic objective function
![Page 24: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/24.jpg)
2404/21/23
Outline
• Wire length driven placement• Main methods
– Simulated Annealing– Partition-based methods– Analytical methods
• Quadratic placement with Gordian-type method
• Force-directed method
• Timing and congestion consideration• Newer trends
![Page 25: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/25.jpg)
2504/21/23
Force Directed Approach
• Transform the placement problem to the classical mechanics problem of a system of objects attached to springs.
• Analogies:– Module (Block/Cell/Gate) = Object– Net = Spring– Net weight = Spring constant.– Optimal placement = Equilibrium configuration
![Page 26: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/26.jpg)
2604/21/23
An Example
Resultant Force
![Page 27: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/27.jpg)
2704/21/23
Force Calculation
• Hooke’s Law: – Force = Spring Constant x Distance
• Can consider forces in x- and y-direction seperately:
(xi, yi)
(xj, yj)
)(F)(F
)()(F
Cost Net )()( Distance
y
x
22
22
ijij
ijij
ijijij
ij
ijijij
yycxxc
yyxxc
cyyxxd
FFx
Fy
![Page 28: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/28.jpg)
2804/21/23
Problem Formulation
• Equilibrium: j cij (xj - xi) = 0 for all module i.
• However, trivial solution: xj = xi for all i, j. Everything placed on the same position!
• Need to have some way to avoid overlapping.• Several possible ways to avoid overlapping:
– Add some repulsive force which is inversely proportional to distance (or distance squared).
– Have connections to fixed I/O pins on the boundary of the placement region.
– Not really move to the equilibrium position, but a nearby position without introducing overlapping.
![Page 29: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/29.jpg)
2904/21/23
Algorithms for Force-Directed Placement
Many variations exist. 2 major categories below.• Constructive Methods:
– Coordinates of all modules are treated as variables.– Solving all equations simultaneously.
• Iterative Methods:– Start with some initial placement, improve placement by moving
modules iteratively.– Select one module at a time.– Move that module to the point of zero force.
(assume positions of all other modules are fixed)
![Page 30: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/30.jpg)
3004/21/23
Comments on Force-Directed Placement
Use directions of forces to guide the search (compared with ‘blind’ search of simulated annealing).
Usually much faster than simulated annealing.x Focus on connections, not shapes of blocks.x Only a heuristic; an equilibrium configuration does not
necessarily give a good placement.? Successful or not depends on the way to eliminate
overlapping
![Page 31: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/31.jpg)
04/21/23 31
Kraftwerk Placement Tool
Hans Eisenmann and F. Johannes, “Generic Global Placement and Floorplanning”,
DAC-98, p.269 - 274
![Page 32: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/32.jpg)
3204/21/23
Approach
• Iteratively solve the quadratic formulation:
• Spread cells by additional forces:
• Density-based force proposed– Push cells away from dense region to sparse region
0
)(Min 21
dCp
constpdCpppf TT
0 fdCp
)','(' and ),( where
'''
')','(
2),( 2
yxryxr
dydxrr
rryxD
kyxf
// equivalent to spring force // equilibrium
![Page 33: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/33.jpg)
3304/21/23
Some Details
• Let fi be the additional force applied to cell i
• The proportional constant k is chosen so that the maximum of all fi is the same as the force of a net with length K(W+H)
• K is a user-defined parameter– K=0.2 for standard operation– K=1.0 for fast operation
• Can be extended to handle timing, mixed block placement and floorplanning, congestion, heat-driven placement, incremental changes, etc.
![Page 34: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/34.jpg)
3404/21/23
Some Potential Problems of Kraftwerk
1. Convergence is difficult to control• Large K oscillation• Small K slow convergence
• Example: Layout of a multiplier
2. Density-based force is expensive to compute
'''
')','(
2),( 2 dydx
rr
rryxD
kyxf
![Page 35: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/35.jpg)
04/21/23 35
Natarajan Viswanathan and Chris Chu
ISPD-04
FastPlace: FastPlace: Efficient Analytical Placement Efficient Analytical Placement
using Cell Shifting, using Cell Shifting, Iterative Local Refinement Iterative Local Refinement
and a Hybrid Net Modeland a Hybrid Net Model
![Page 36: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/36.jpg)
3604/21/23
FastPlace Approach
• FastPlace Framework (roughly):repeat
Solve the convex quadratic program Reduce wirelength by iterative heuristic Spread the cells
until the cells are evenly distributed
• Special features of FastPlace:– Cell Shifting
• Easy-to-compute technique • Enable fast convergence
– Hybrid Net Model• Speed up solving of convex QP
– Iterative Local Refinement• Minimize wirelength based on linear objective
![Page 37: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/37.jpg)
3704/21/23
Cell Shifting
Uniform Bin Structure Non-uniform Bin Structure
1.1. Shifting of bin boundary Shifting of bin boundary
2.2. Shifting of cells linearly within each Shifting of cells linearly within each binbin• Apply to all rows and all columns independently
![Page 38: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/38.jpg)
3804/21/23
Iterative Local Refinement
• Iteratively go through all the cells one by one• For each cell, consider moving it in four directions for a certain
distance• Compute a score for each direction based on
– Half-perimeter wirelength (HPWL) reduction
– Cell density at the source and destination regions
• Move to the direction with highest positive score (Not move if no positive score)
• Distance moved (H or V) is
decreasing over iterations• Detailed placement is handled
by the same heuristicH H
V
V
![Page 39: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/39.jpg)
3904/21/23
Pseudo pin and Pseudo net
Pseudo net
Additional Force
Pseudo pin
Target Position
Original Position
• Need to add forces to prevent cells from collapse back
• By adding pseudo pins and pseudo nets
• Only diagonal and linear terms of the quadratic system need to be updated
• Horizontal and vertical problems have the same connectivity matrix Q
![Page 40: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/40.jpg)
4004/21/23
Effect of Net Model on Runtime• Need to replace each mulit-pin net by 2-pin nets• Then the placement problem (even with pseudo nets) can be
formulated as a convex QP:
• Solved by any convex QP algorithms– Use Incomplete Cholesky Conjugate Gradient (ICCG)
• Runtime is proportional to # of non-zero entries in Q • Each non-zero entry in Q corresponds to one 2-pin net• Traditionally, placers model each multi-pin net by a clique• High-degree nets will generate a lot of 2-pin nets• Slow down convex QP algorithms significantly
const2
1
2
1cost Total yyyxxx T
yTT
xT dQdQ const
2
1
2
1cost Total yyyxxx T
yTT
xT dQdQ
![Page 41: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/41.jpg)
4104/21/23
Clique, Star and Hybrid Net Models
Star Node
Clique Model Star Model Hybrid Model
# pins Net Model
2 Clique
3 Clique
4 Star
5 Star
6 Star… …
• Star model is introduced by Mo et al. [ICCAD-00] for macro placement
• Introduce a star node even for 2-pin nets• Not clear how the placement result will be affected• We proved the equivalence of Clique, Star, and Hybrid models
![Page 42: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/42.jpg)
4204/21/23
Comparsion
• FastPlace is fast:– Compare to Capo 8.8:
• 13x faster
• 1% longer in wirelength
– Compare to Dragon 2.2.3• 97.4x faster
• 1.6% longer in wirelength
– Compare to Kraftwerk (based on published data)• 20-25x faster
• 10% better in wirelength
• Lots of small improvement and implementation tricks– Still need to understand how and why it works
![Page 43: 10/11/2015 1 VLSI Physical Design Automation Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 Placement (2)](https://reader035.vdocuments.site/reader035/viewer/2022070412/56649ea95503460f94bad947/html5/thumbnails/43.jpg)
4304/21/23
Summary
• We have covered three main methods of placement1. Simulated Annealing
2. Partition-based methods
3. Analytical methods
• Each of them has pros and cons• In practice, hybrid (of these techniques) is used
– Quadratic with partitioning– Simulated annealing with clustering (dual of partition)