[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnucap-devel] faster queueing
From: |
Felix Salfelder |
Subject: |
[Gnucap-devel] faster queueing |
Date: |
Tue, 23 Feb 2016 10:36:36 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi Al.
As you had pointed out, CARD_LIST::tr_queue_eval iterates over the whole
circuit instead of over all the non-constant components.
to work around that, i have added another list to CARD_LIST holding the
pointers to the components that are not constant (during precalc_last).
using this list instead of the full list decreases tr simulation time by
a factor of almost two (eq4-9217.tran.ckt).
the changes involve one uglyness, that i think you are already aware
of... the dc sweep pointer-hacks elements and sets them non-constant, so
they are queued. this non-const setting comes after the non-const queue
has been set up (too late). my current workaround adds these elements to
the evaluation queue of the top level circuit.
i have attached a patch, it is against -uf. i think it transports the
idea, and gives some numbers on the speed impact. i will backport as
soon as i know a proper way to deal with the dc-hack.
cheers
felix
PS: yes, i tried to do this with plugins, overload/change BASE_SUBCKT
functions only. it turned out to be a dead end (too many devices to
change).
fastq
Description: Text document
- [Gnucap-devel] faster queueing,
Felix Salfelder <=