I have a Mathematica program which performs some integrals in 3 or 4 dimensions using the QuasiMonteCarlo method. The problem is, it takes an annoyingly long time to run, to the point where some of these calculations can't complete in the maximum job time available on our HPC cluster. So I'm considering rewriting the program in C++, which I suspect will speed it up by a large factor.
I looked at the GSL docs and while there are sections on quasirandom sequences and regular MC integration, I don't see anything that brings them together. Also a Google search or two didn't turn up anything that looked like a widely trusted implementation. What are my options for a well-tested implementation of QMC integration in C++?
In the interest of consistency, I'd prefer to use something close to the Halton-Hammersley-Wozniakowski method that Mathematica implements, if that is an option.
Compileing the integral (to C code) before passing it toNIntegrate, i.e. is itNIntegratethat's slow or calculating the function? Using C-compiled functions might need a bit extra work on a cluster though. – Szabolcs Jan 14 '12 at 08:39