benchmark/compare against Burkardt's implementation
Opened this issue · 6 comments
It would be interesting to compare against this implementation, both for correctness and performance.
That's quite a challenge for me, as I've never compiled c++ before. However, with the help of Google I've compiled his code and the example runs. Now I'm trying to build Cxx.jl. I'll keep you posted if any results. Fingers crossed!
Oh, if it's a bother for you, I can do it myself at some point; I was just thinking of calling/benchmarking it in C++, not in Julia. But I thought you might enjoy taking a crack at it.
Cxx.jl requires llvm-svn or llvm 3.7.0, but I keep getting build errors on my mac. I've tried different versions of xcode. Where could I go to get help on that?
I don't think I would be able to manage this soon.
I ran a little test using this C++ benchmark program. I benchmarked the Julia code using
function nth(s, n)
x = Vector{Float64}(ndims(s))
for i = 1:n
next!(s, x)
end
return x
end
to compute the n-th element of a Sobol sequence.
The good news is that the answers match ours in all the cases I tried, and the performance is within a factor of 2.
The bad news is that we are up to 2x slower, so we are leaving some performance on the table. (Note that the C++ code is returning single-precision vectors, whereas we are returning double precision; this is a slight advantage, but I doubt it explains most of the difference.)