MulticoreInfo.com header image 2

Top Story

How to multithread a timing analyzer

January 11th, 2010 · No Comments




The simplest level of parallelization is done by users themselves, and has been around for years. There is no coupling between tasks. You just launch different scenarios on different servers. All the scenarios run in parallel, each at single-processor speed. But if you don’t have a bunch of scenarios—different process corners or operating modes, say—to run, this approach isn’t much help.

A more challenging approach for tool designers is to exploit data parallelism to partition one run of the tool across multiple machines. For instance, you can turn one run into many parallel runs by simply dividing the design up into chunks and running each chunk on a separate machine. This is really straightforward for some tools, such as design-rule checkers, where there is little or no interaction between adjacent design objects. You just break your design up into pieces, leaving a little overlap between your chunks, run each piece of the design on a separate server, and resolve any ambiguities that come up in the overlap areas after the run.

Full Story

  • Share/Save/Bookmark

Tags: MulticoreInfo

Like what you're reading? Come back every day for multicore news, or subscribe to RSS updates.



Stumble It!