BenchmarkΒΆ
To test the scaling of the celerite algorithm, the following figures show the computational cost of
gp.compute(x, yerr)
gp.log_likelihood(y)
as a function of the number of data points \(N\) and the number of terms \(J\). The theoretical scaling of this algorithm should be \(\mathcal{O}(N\,J^2)\).
The code for this example is available on GitHub and below we show the results for a few different systems. In each plot, the computational time is plotted as a function of \(N\) or \(J\) and the colors correspond to the other dimension as indicated by the legend.
Example 1: On macOS with Eigen 3.3.3, pybind11 2.0.1, and NumPy 1.12.0.
Example 2: On Linux with Eigen 3.3.3, pybind11 2.0.1, and NumPy 1.12.0.
Example 3: For comparison, a CARMA solver using a Kalman filter. On Linux with Eigen 3.3.3, pybind11 2.0.1, and NumPy 1.12.0.