gnucap vs. spice benchmark
Al Davis <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <[email protected]> |
I just did some timing, and I think earned some bragging rights. The circuit is a large linear circuit, mostly RC with lots of controlled sources, essentially an op-amp circuit with a simple vcvs model of the op-amp. There is a lot of repetition. It is an expansion of the "eq" circuits in the gnucap test files. It has 36865 nodes, after expansion. The benchmark is a transient analysis. Spice 3f5 took 363 seconds. Gnucap took 66.6 seconds with the default settings, which are stricter than Spice. Relaxing the specs ... eliminating the check iteration (one more just in case), now 46.4 seconds. (still stricter than Spice) from there, relaxing step control, so it does the same number of time steps as Spice, now 28.1 seconds. I believe this is the closest to equivalent accuracy to Spice, better than 10x faster. further relaxing the step control, allowing it to completely free-run, now 17.5 seconds. The answers still look good. Now, going the other way .... No bypass, no incmode, etc .... This is essentially Spice algorithms, but Gnucap's normal tighter checks, including the extra check iteration, now 294 seconds. Still faster than Spice, no optimization, more accurate. No bypass, no incmode, etc ... with no check iteration, relaxed time stepping, now 111 seconds. This is as close to the Spice algorithms, and Spice accuracy checks as I can make it. The "check iteration" is another pass done for accuracy checking after a step has been conditionally accepted. Spice doesn't do this. Its purpose is to catch false convergence. Since this circuit is linear, I suppose it could get by without any convergence checking, possibly saving one more iteration. Just figured I would pass that on.