1 / 18

A Parallel Integer Programming Approach to Global Routing

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

kezia
Download Presentation

A Parallel Integer Programming Approach to Global Routing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Parallel Integer Programming Approach to Global Routing Tai-Hsuan Wu, AzadehDavoodi Jeffrey T. Linderoth DAC 2010

  2. Outline • Introduction • Summary of GRIP • Parallel Global Routing • Experiment Results • Conclusions

  3. 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

  4. 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.

  5. 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

  6. Summary of GRIP • Formulation ILP-GR • Objective • Constraints large constant constant A net just produce a route Total # of wires in edge

  7. 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

  8. 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.

  9. Defining Subproblems

  10. 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.

  11. 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

  12. Distributed IP-based Patching • Formula ILP-PATCH • Objective • Constraints • is a large constant for forcing slack variables .

  13. 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.

  14. 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.

  15. Layer Assignment

  16. 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)

  17. Experiment Results

  18. 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.

More Related