not calling match_statevector on every write#911
Conversation
| x_instrument = x[self.idx_instrument] | ||
| return x_surface, x_RT, x_instrument | ||
|
|
||
| def match_statevector(self, full_statevector): |
There was a problem hiding this comment.
an unfortunate convenience putting this in fm. An alternative is to explicitly carry these lists in and out of scope as function args. My only concern with that is that fileio and analytical_line class workers gain two additional arguments to handle.
|
I tried this with the numba compilation we discussed as an alternative. Merged with the numagrid from dev, I got: Presolve: 4.6881 spectra/s/core In other words, right in-line with dev. I'm confirming I can match your result above - if so, then I think this can get converted and folded in. |
bug fixes Bugfix missing self JIT testing JIT testing cont Testing for match
2fca1d4 to
21fb112
Compare
|
📊 Generated results:
URL: isofit/isofit-test-results#10 |
|
Updates concerning The loop syntax that is currently set up to match the statevector terms is not compatible with The issue seems to be incompatible compilation with |
|
Can reproduce across multiple scenes. Most recently an ANG scene: OE run time is not impacted: |
|
Circling back after discussion - general agreement is that we do not see presolve or main solution speedup, but we do see a speedup in AOE. The exact speedup depends on the particulars...for AV5 (with CO2 included), we're seeing a 30% reduction, for ANG without CO2 about 25%. Either way, this is a clear win. We do not see corresponding speed changes with numba, and there's debate about the compiler success - either way, we can accept the slight complexity increase for the clear speed win. Thanks @evan-greenbrg ! |
Low-hanging fruit for some potential gains.
Needs debugging and testing.
From some per-pixel profiling on the analytical line:
The highlighted field is the cumulative time. Run calls on far left is the same.
With the old match_statevector:

With these updates:

Looks like this is considerable (on the AV5 scene that we've been using as benchmark):
I've removed the highlights of the OE times. It looks like speed gain for OE is minor (altough there is some) compared to the AOE