Thursday, March 13, 2008

The Future is Multi-Threaded

Richard Goering's article Synopsys pledges multicore support for EDA applications covers the current state and future claims for multi-threaded EDA products. Synopsys has made a big announcement about a multicore initiative, and Richard also notes the vendors (mostly startups) who are already offering such products.

I hope that Synopsys isn't just blowing smoke and will deliver multi-threaded applications in 2008. I'm no software engineer, but I thought it would be pretty difficult to retrofit multi-threading in these gargantuan EDA products, some of which have been around for many years.

We really need multi-threaded applications. Most servers have multiple CPUs with multiple cores each, yet are limited by memory as to how many EDA processes can run at a time. Often, you can only run one job because you need all the memory on the server to synthesize or place & route that design. Multi-threading should deliver greatly accelerated performance as those other idle cores contribute to the job at hand.

Some of the terminology gets confusing. In this article, "multi-threaded" and "multicore" are seemingly interchangeable. And then there is "distributed processing". I think of multicore as describing the hardware (CPU), and multi-threaded as describing the software architecture that includes shared memory access. And "distributed" means running on different physical servers, with separate memory models. Do I got that right?

1 comment:

John said...

I am in complete agreement on your terminology, John.

It looks like we all suffer from the same problems with our EDA software. The IT dept. thinks it's getting 4 new job slots with each new quad-core it buys. Not so! Even if 4 people ran jobs that didn't max out the memory - there is still a speed impact on all the jobs (I guess on the machine as a whole).

Multi-threaded EDA SOFTware for multicore HARDware was needed yesterday - and without charging multiple license fees. That's the rub for some of the software that runs on multiple CPUs - it requires expensive multiple licenses.