Notes
Technical notes from TAKT on the speed and reproducibility of numerical code. Each one shows its measurements and, where possible, a script to check them on your own machines.
-
The official QuantLib wheel prints different last digits on different Linux systems
The same official QuantLib 1.43 wheel prints different last digits on glibc 2.28 than on 2.39 and 2.41, because it calls the system's exp, log and pow.
-
Why LightGBM permutation importance is slow, and what you can do about it without changing the result
Permutation importance runs one full prediction per feature and repeat. Which settings make it faster with the same result, and which ones change the result.
-
The same Python backtest prints a different Sharpe ratio on a newer CPU
On AVX-512 CPUs numpy rounds about one log or exp in twenty differently, and the widely quoted way to switch that off stopped working in numpy 2.4.
-
TA-Lib performance in Python: measure the native computation first
Before speeding up TA-Lib in a Python backtest, measure how much of the run it takes, and read what published speed-ups actually cover.
-
Measure a Rust program with interleaved runs and output checks
Compare two builds of a Rust program with interleaved runs, hardware counters and an output check, using the open-source takt-harness.