[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnucap-devel] very large pure linear circuits

From: Al Davis
Subject: Re: [Gnucap-devel] very large pure linear circuits
Date: Tue, 18 Oct 2005 12:56:17 -0400
User-agent: KMail/1.8.2

On Tuesday 18 October 2005 12:18 pm, walter steffè wrote:
> What do you think are the differences which make possible the
> high speed of these codes ? Is it something that can be done
> to improve the gnucap simulation speed when dealing with very
> large but pure linear circuits ? I am not well aware of the
> details of the numerical methods used for the simulation of
> electrical circuits and so I would appraciate very much any
> information you can give me to understand the main factors
> which limit the simulation speed and possible warkaround.

Have you benchmarked it as it is?  It is a lot faster than Spice 
for that kind of circuit.  The biggest circuit in my test suite 
is about 35000 nodes.  When the options are set for speed, it 
takes about 15 seconds on a 850 MHz AMD.  It scales roughly 
linearly.  "A few hours" is very slow.  You can do better.

Gnucap is not optimized for memory usage.  For the big circuits 
you describe you need lots of memory.  You need enough memory 
to hold everything without swapping.

One way to improve it beyond where it is, without sacrificing 
accuracy, is to eliminate or turn off the baggage of iteration 
and the like, that is necessary for nonlinear circuits.

Another point, probably significant, is to improve the ordering 
of the nodes.  It is pretty much brute force now.  Markowitz 
often makes it worse.  A bunch of years ago, I came up with a 
method "block depth first search with heuristic continuation" 
that seems to be better.

It can also be improved by optimizing duplicate parts of the 
circuit.  Gnucap does a little of this now, but not as much as 
it could.

As it is now, when a circuit is purely linear, gnucap solves the 
big matrix only once.  When there are nonlinear elements it 
makes incremental updates and partial solutions.  This adds a 
little bit of overhead, but nothing compared to Spice.

If you are willing to give up some accuracy, a completely 
different method such as a moment-matching method, will give 
you huge speedup.  Above all, you don't want Spice or any Spice 
derivative.  Gnucap is not a Spice derivative.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]