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