180 likes | 320 Views
A Parallel Integer Programming Approach to Global Routing. Tai- Hsuan Wu, Azadeh Davoodi Jeffrey T. Linderoth DAC 2010. Outline. Introduction Summary of GRIP Parallel Global Routing Experiment Results Conclusions. Introduction. Global Routing Define a routing regions
E N D
A Parallel Integer Programming Approach to Global Routing Tai-Hsuan Wu, AzadehDavoodi Jeffrey T. Linderoth DAC 2010
Outline • Introduction • Summary of GRIP • Parallel Global Routing • Experiment Results • Conclusions
Introduction • Global Routing • Define a routing regions • Generate a tentative route for each net • Each net is assigned to a set of routing regions • Does not specify the actual layout of wires • Overflow • Each routing region has capacity for # of wires • If a routing region contain wires overthan capacity is called overflow Routing Region Net 1 Net 2
Introduction • GRIP • A global routing method which relies heavily on Integer Programming tech. • The runtime of solving a large global routing is impractical. • Using “Column Generation” to solve the dual problem of ILP formulation. • Partition regions into subregions to speed up the runtime. • PGRIP (this paper) • Form the rectangular subregions to corresponding subproblems. • Extend GRIP to include initial estimation of distribution of the nets. • Using “Patching” to do synchronization for subproblems. • Give a limit on # of iterations of each computational step to control the runtime.
Summary of GRIP • Problem definition • Given a grid-graph • Given a set of nets • Donate is a set of all Steiner tree connecting terminals in • The set of Steiner tree is generated by Flute • For a route , an edge • We define is the weight, capacity, overflow of edge • Donate constant is the weight of route • Given a large constant as penalty coefficient of overflow at edge
Summary of GRIP • Formulation ILP-GR • Objective • Constraints large constant constant A net just produce a route Total # of wires in edge
Parallel Global Routing • Defining Subproblems [10 min] • Initial Pricing at the Subproblems [5 min] • Distributed IP-based Patching [fast] • Adjust Pricing at the Subproblems [20 min, filter routes: 10 min] • Parallel Connecting of Subproblems [20 min] IP-based patching … SP1 SP2 SPn
Defining Subproblems • Generate a routing of all nets to guide the bi-partitioning • Using Flute to generate projected 2D routes for each net. • Set and given a target time to solve the ILP-GR by LP solver. • Using random procedure to choose one route for a net. • Random rounding is usually better then greedy rounding. • Partitioning the problem into subproblems • Recursive bi-partitioning until the # of nets in a subproblem is small enough. • Balance the runtime for each subproblem. • Traversal subproblems sequentially, and apply detouring in GRIP • Reduce the total edge overflow in initial routing and balance the runtime of subproblems.
Initial Pricing at the Subproblems • Solving the ILP-GR individually for each subproblem. • Set Manhattan distance of edge from center of subproblem. • The grid edges that are closer to the boundaries have a larger overflow penalty. • Allow the pseudo terminals anywhere on the boundaries.
Distributed IP-based Patching • Input • two boundaries of neighboring subproblems • the locations of pseudo terminals on the boundaries from the initial pricing • Output • The spanning windows of all nets • Limit the location of pseudo terminals • Problem Definition • Given a graph • Set is pseudo terminals of at left side, is right side. • Donate is the length of virtual route of . • Set is the sum of capacities of edge pair . Spanning window Edge pair
Distributed IP-based Patching • Formula ILP-PATCH • Objective • Constraints • is a large constant for forcing slack variables .
Adjusted Pricing at the Subproblems • Filter the candidate routes in given restricted windows from further consideration. • Solving the ILP-GR as same as Initial Pricing step.
Parallel Connecting of Subproblems • Remove all the edges connected to pseudo terminals. • For each edge, we set the remaining capacity into half. • Divide subproblem into quadrant, and solve the ILP-GR of corresponding boundaries.
Experiment Results • Setting • Implement in C++ • Submitting jobs to a grid of hundreds of heterogeneous CPUs of 2GB memory. • Test case from ISPD 07 and 08 • Competitor • GRIP (their previous paper, so can show the CPU time) • FGR • FastRoute • NTHU-Route (require 10GB memory)
Conclusion • Parallel technique can solve the Integer Programming in an accepted runtime. • We don’t need to use synchronization barrier for these methods, so there is high utilization of cores in all processing.