The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
General >> Tech Talk >> Multi-thread Circuit Simulator
https://designers-guide.org/forum/YaBB.pl?num=1184691133

Message started by schehrazi on Jul 17th, 2007, 9:52am

Title: Multi-thread Circuit Simulator
Post by schehrazi on Jul 17th, 2007, 9:52am

Is any of the major CAD tool companies going to introduce a multi-thread simulator? It looks hard if possible to make a SPICE type multi-thread simulator but since multi-core looks to be the future of computing systems, something has to be done.


Title: Re: Multi-thread Circuit Simulator
Post by byang on Jul 18th, 2007, 10:08pm

Not sure about Cadence, Synopsys, and Mentor. I agree with schehrazi that "real" multi-threaded circuit simulator is not that easy. For traditional Spice guys, only SmartSpice has a multi-threaded version. However, benchmark posted on their website shows parallel speedup as low as 2.7 on a 16-core computer (8 dual-core CPUs).

Our company has an excellent multi-threaded circuit simulator. It is called gsim, Gemini simulator, where Gemini (twin star) has the meaning of parallel. Though gsim is still in beta now, it is already a robust parallel circuit simulator. Members of the gsim team had years of experience with almost all the industry leading circuit simulators, both Spice and FastSpice, before they started the gsim project. They wanted to implement a next-generation circuit simulator, certainly multi-threaded, from ground up, where both accuracy and speed are treated as equally important.

If anyone has a multi-core computer on Linux64 platform and wants to speed up circuit simulation, we can certainly help. You can send a message to    info   AT    gemini-da      DOT  com

Baolin Yang, Ph.D.
Founder and President
Gemini Design Technology, Inc.

Title: Re: Multi-thread Circuit Simulator
Post by didac on Jul 19th, 2007, 12:57pm

Hi,
I agree that a multi-thread simulator will be good but at my case I will rather prefer a grid computing solution. In my lab we connect to a multicore processor that has the software and licenses installed, so we didn't use the local computer for simulations. Having multicore processor at the server allows several users/process to work simultaneusly but the simulations only have the RAM and disk space of one computer, instead in a grid computing network the computational load will be distributed along the machines at the workplace taking into account the state of each machine thus reducing the simulation times. Just my thoughts.

Title: Re: Multi-thread Circuit Simulator
Post by byang on Jul 19th, 2007, 1:55pm

Hi, Didac,

I am not sure whether I understand your points completely. Do you prefer a solution that uses a luster of computers or grid?

In your lab you connect to a multicore processor. That is fine for running a multi-threaded simulator. You don't need to run it on a local computer. I used to run simulations on non-local computers all the time. I think you just need to ask your IT department to properly set up the network and filesystem sharing.

Now back to the comprison of multi-threaded and distributed simulators, I think multi-threaded simulator is certainly much more important in the future. Now one can easily afford computers with 8 to 16 cores (multiple dual-core or quad-core CPUs). And the number gets doubled every two years. It is extremely rare that one wants to occupy many computers of this type to run some circuit simulation.

Baolin Yang, Ph.D.
Founder and President
Gemini Design Technology, Inc.

Title: Re: Multi-thread Circuit Simulator
Post by didac on Jul 19th, 2007, 11:09pm

Hi byang,
My point is that if you connect to via ssh or similar to a computer(say a multicore processor that contains the software) and say that are 5 or 6 more guys doing the same, the local computer will be practically idle(the local cpu uses little resources because the work is done in the remote server), in this situation a grid application can distribute the simulation between the local PC's of the users and the server thus fastening simulation times. Of course if you combine it with a multithread simulator running on the server(and if the local PC is also multicore) then you will go faster. Just I think that it depends on the situation a multithread simulator it's a very good solution, but depending on the situation I think that it's more optimum a grid computing solution, or maybe a combination of both solutions.

Title: Re: Multi-thread Circuit Simulator
Post by Unique on Jul 23rd, 2007, 5:55am

The challenge of multithreaded programming is very acute. Though multithreading isn’t new, it’s suddenly receiving a lot of attention with the widespread distribution of multicore processors. And the main worry is how to exploit this new, potentially very interesting technology, which promises to multiply available computing power by a very large factor.

So the new generation of  CAD systems should appear which can exploit potential of new hardware. Actually to adopt effectively widely used numerical methods for multi-processing systems is not an easy task. And the main problem here is that many methods are oriented to using with one-core computer. Some of these methods cannot be either redesigned at all or directly redesigned.

In our company we are developing simulation program AVOSpice where proprietory speeding up algorithms were applied from the very beginning to provide program usage on multicore systems. For example, using 4-core architecture you can reach up to three times acceleration for most of practically used circuits.

I think. that multithreading is a new tendency and very soon a lot of attention will be drawn to it

Title: Re: Multi-thread Circuit Simulator
Post by byang on Jul 23rd, 2007, 7:32am

Another point to add. One severe problem for FastMOS simulator, also called timing simulator for a caregory of this Forum, is that its event-driven scheme is fundamentally bad for multi-threading and parallel simulation. Why?

To put it simple without technical details:

1. "event" in FastMOS simulators doesn't have much computation by design and is hard to parallelize.

2. "driven" means one after another and is fundamentally serial.

It is my opinion that FastMOS / timing simulation technology is basically yesterday's technology. If one doesn't change it soon, one will be lagging behind their competitors who use a true parallel simulator. I worked on a commercial FastMOS simulator for several years. So my claim is based on true knowledge.

byang
http://www.gemini-da.com                               (newly designed)

Title: Re: Multi-thread Circuit Simulator
Post by Andrew Beckett on Aug 27th, 2007, 1:52pm

To reply to the original question, Spectre from Cadence has multithreading capability, both for device model evaluation, and also in the harmonic balance engine in SpectreRF.

Regards,

Andrew.

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Aug 27th, 2007, 2:01pm

A few month ago, some of my collegues used that feature and they were not very happy with it. I have never used it myself. Maybe they have fixed the problems in new releases though.

Title: Re: Multi-thread Circuit Simulator
Post by Ken Kundert on Aug 27th, 2007, 2:07pm

Perhaps you can be more specific? Otherwise comments like this have the feel of an unsubstantiated rumor, which is to be avoided.

-Ken

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Aug 27th, 2007, 3:38pm

Those guys are out of town now, I will post as soon as I ask about the specifics from them.

Title: Re: Multi-thread Circuit Simulator
Post by Andrew Beckett on Aug 27th, 2007, 9:41pm

Also, please make sure you are specific about which of the two multi-threading modes you are talking about. I've had cases where people get confused about the two. One is a simulator option (controlled via the multithread/nthreads parameters to the options analysis - and affects model equation evaluation for bsim3v3/bsim4), and one is specifically for harmonic balance in SpectreRF (controlled by the unix environment variable $CDS_SPECTRERF_MULTITHREAD ).

Regards,

Andrew.

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Aug 28th, 2007, 6:36am

My friend used the multi-threading option on a Sun Machine and these are the problems he had:

1. Spectre uses only around 30% of the second processor power.
2. When using multi-threading, Spectre crashes very often.


Title: Re: Multi-thread Circuit Simulator
Post by Geoffrey_Coram on Aug 28th, 2007, 11:36am

If the multi-threading only applies to BSIM3/4 evaluation (as Andrew indicated), then 30% of the second CPU is probably reasonable; it's quite hard to have a multithreaded matrix solver, so the second CPU utilization and the speed-up is dependent on the circuit size: whether it's dominated by matrix solving or device evaluation.

On the other hand, I don't know what to say about the frequent crashing.

Title: Re: Multi-thread Circuit Simulator
Post by byang on Sep 2nd, 2007, 11:12pm

A real multi-threaded circuit simulator should consider both parallel matrix computation and parallel device model evaluation. Moreover, the simulator circuit database or infrastructure should consider parallel circuit simulation from the beginning. Otherwise, if one can only get a little bit of speedup on 2 CPU/cores, one will have no advantage at all if he goes to 4 CPU/cores or 8 CPU/cores.

Freuqent crash is the worst nightmare one could have with a multi-threaded circuit simulator. That is the first hurdle a multi-threaded simulator should get over with. After that, one should check whether a multi-threaded simulator gives "random" result, i.e. result varying from one run to another. Any randomness tells user that the simulator has thread synchronization problem.

Anyway, it is not as easy as it appears to claim that one has a multi-threaded circuit simulator.

Baolin Yang, Ph.D.
Founder and President
Gemini Design Technology, Inc.
http://www.gemini-da.com

Title: Re: Multi-thread Circuit Simulator
Post by John O Donovan on Sep 25th, 2007, 10:16pm


Hi,

On the subject of crashing, could you provide some more details, such as the version of Spectre used, when the crash occured, what type of models are being used, etc ... Multi-threading of device evaluation, while not simple, is not fundamentally very complicated, and should not lead to any crashes since by the time devices are being evaluated, all required memory is allocated, hence no memory related issue should exist.

 John

Title: Re: Multi-thread Circuit Simulator
Post by jorobins on Sep 29th, 2007, 7:58am


Andrew Beckett wrote on Aug 27th, 2007, 1:52pm:
To reply to the original question, Spectre from Cadence has multithreading capability, both for device model evaluation, and also in the harmonic balance engine in SpectreRF.

Regards,

Andrew.


Just a quick comment on my experience with the multithreading option in spectre. Typically for a top level PLL sim transient sim (>500 devices?), a colleague and I  saw a speedup of about 2x on a 4-core CPU machine using the multithread option. I remember that for extracting the max. benefit out of multithread sims, Cadence had some recommendations like not to have current probes inserted and such... The spectreRF shooting engine based pss does not use the multithread option which is a bummer.... I'm yet to warm up to the harmonic balance version...

Title: Re: Multi-thread Circuit Simulator
Post by byang on Sep 29th, 2007, 11:56am

Hi, Jorobins,

2x speedup on 4-core computer is kind of low. This is especially true if device model evaluation of a simulator is slow. In that case, device model evaluation should benefit a lot from multi-threading. (Current probe can add more nodes in the circuit, which causes the circuit matrix to become bigger and slower to solve. Unfortunately matrix parallelization is much harder to do.)

The best next-generation multi-threaded circuit simulator should have:

* fast device model evaluation and yet high multi-threading efficiency

* efficient parallel matrix solver

which covered the two most important areas in circuit simulation: device model evaluation and matrix solving.

Baolin Yang, Ph.D.
Founder and President
Gemini Design Technology, Inc.
www.gemini-da.com

Title: Re: Multi-thread Circuit Simulator
Post by IainC on Aug 8th, 2008, 6:31am

I'm really quite doubtful that a mixed signal design could be simulated faster multi-threaded.

Given that it's transient you would likely lose as much time synchronising at each timepoint as you gained in parallel processing - not to mention the major headache you would have if the results of one process affected the (on-going) calculations handed to another thread. e.g. something in the circuit switches.

Not an expert in this by any means but I can't see for a typical design how this could be made to work.

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Sep 9th, 2009, 5:35pm

On the same subject:

http://www.cadence.com/Community/blogs/ii/archive/2009/07/31/dac-report-gpus-or-multicore-for-eda-applications.aspx

Title: Re: Multi-thread Circuit Simulator
Post by ywguo on Sep 12th, 2009, 12:53am

4x speed up on 4-CPU computer for Corner Analysis in ADE. :)

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Sep 12th, 2009, 1:21am

That's different though since the corner simulations are independent of each other. If one gets 4X speed up in transient simulation on a 4 CPU machine, that will be something.

Title: Re: Multi-thread Circuit Simulator
Post by Andrew Beckett on Jan 4th, 2010, 1:09pm

I'd quite forgotten about this thread, and things have moved on a lot since it started.

Cadence's APS simulator (which is essentially a mode of spectre) parallelizes both the device evaluation and matrix solve, and does a number of other things to get large speed improvements without compromising accuracy; some of which is the result of having an improved matrix solver - so we see speed improvements even on single core. Don't want to make this a sales pitch, but if you're already using spectre and are unaware of APS, it's worth contacting Cadence to find out more. It's in use by a lot of happy users now...

It was introduced in MMSIM71, and in MMSIM72 APS is extended to most of the analyses in spectre, including the RF analyses.

Regards,

Andrew.

Title: Re: Multi-thread Circuit Simulator
Post by schehrazi on Jan 4th, 2010, 1:26pm

Thank you Andrew. I have heard of the APS but have never tried it. I will give it a try and will let you know of my experience if I have it installed.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.