In MCMC there is always the issue that there are no established benchmarks. C.f. for example machine learning - Performance benchmarks for MCMC - Cross Validated .

There are some related efforts in the community, e.g. GitHub - StatisticalRethinkingJulia/MCMCBenchmarks.jl: Comparing performance and results of mcmc options using Julia and internal tests in packages. I think the only way to approach is to learn from the ML community and put a bit of a competitive element to it, where it’s not enough to use your approach to beat your own half-assed efforts with an alternative method you have no stakes in –

but you have established data sets and metrics and you have to beat previous records *on those* by people trying to do the best with their own methods…

I also happen to get the impression that https://discourse.julialang.org loves to optimise stuff…

Now I have this downright evil banana shaped (5 dimensional banana to be precise) density, the hybrid Rosenbrock [1903.09556] An n-dimensional Rosenbrock Distribution for MCMC Testing .

```
using Distributions
struct HybridRosenbrock{Tμ,Ta,Tb}
μ::Tμ
a::Ta
b::Tb
end
function Distributions.logpdf(D::HybridRosenbrock, x)
n2, n1 = size(D.b)
n = length(x)
X = reshape(@view(x[2:end]), n1, n2)
y = -D.a*(x[1] - D.μ)^2
for j in 1:n2
y -= D.b[j,1]*(X[j,1] - x[1]^2)^2
for i in 2:n1
y -= D.b[j,i]*(X[j,i] - X[j,i-1]^2)^2
end
end
C = 0.5log(D.a) + 0.5sum(log.(D.b)) - n/2*log(pi)
y + C
end
```

I’d like to propose that as a benchmark problem.

I think the first thing to do is `NUTS`

from GitHub - TuringLang/AdvancedHMC.jl: Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms, I made a simple implementation (see Evil Rosenbrock density with nuts · GitHub. )

With that and some 3 minutes of effort:

Showing the trace plot of the 5 dimensions and the samples of pairs of dimensions.

In black are the NUTS samples, as yellow points samples my *python* sampler which correctly manages to visit the tails of the distribution. Can I do better? I already try some things, like rescaling the marginals by their standard deviation `σ0`

.

Gist: Evil Rosenbrock density with nuts · GitHub

Also input on how to quantify success here would be valuable.