Benchmark of numerical integration packages for multi-dimensional integration

I’d also note that benchmarks highly depends on the characteristics of the integrand function, it’s hard to provide benchmarks that cover all possible cases. As an example, among the methods provided by Cuba.jl, cuhre tends to be the fastest and most accurate one in many cases, but if the function has some very sharp peaks whose position is known, divonne is a much better choice as you can provide the position of the peaks in order to increase sampling around them (to be honest, I’ve never used this feature in Cuba.jl even though it should be somewhat exposed, I did it some years ago with the Fortran library).

To summarise, you should really benchmark the different methods with your integrand function.

1 Like