Closed ceholden closed 8 years ago
Added Jupyter notebook to keep a log of benchmark timings for code changes/commits. Development will continue on branch feat/issue70
Testing on the p022r049
example dataset showed a speedup of ~2x between v0.5.5
(906d4ec48e3158ea69a1bfec8cdaef49d6a8e424) and upcoming v0.6.0
(ec0d06ec6a3cb2eb9086c1b0c188b366b4c96eea) for running CCDCesque
.
Last goal is somewhat accomplished. There is far too much state information and other variables to completely rip out all the computation and put into one big, JIT'd function.
Speed ups are result of see (31e21f905adf9dce0b521a588b2cbf488dbbec24):
Closing for now, with possible round 2 of optimizations in store for CCDCesque
. For now we also have a working "JIT when possible" decorator to use with other algorithms.
Now that the
CCDCesque
implementation has a regression test (4ac359fddc38c6ae52e3334f0f93d5393b047ddd) so we can be sure we optimization didn't break anything, let's try to make CCDCesque algorithm run faster by JIT-ing as much of the computation as possible whennumba
is installed.Plan:
numba.jit
that will return a JIT function whennumba
is available but returns an unaltered function when it is not.@jit
without worry of segregating the codebase because of an optional dependencyCCDCesque
into appropriate YATSM moduleyatsm.regression
CCDCesque
into functions so they can be JIT-edCCDCesque
as more of a container for results that pairs with methods for creating, working with, and visualizing said results