在 C++ 中替换 Mathematica 的 QuasiMonteCarlo 集成

计算科学 图书馆 蒙特卡洛 C++ 数学
2021-12-03 03:07:01

我有一个 Mathematica 程序,它使用该QuasiMonteCarlo方法在 3 维或 4 维中执行一些积分。问题是,运行需要很长时间,以至于其中一些计算无法在我们的 HPC 集群上可用的最大作业时间内完成。所以我正在考虑用 C++ 重写程序,我怀疑这会大大加快它的速度。

我查看了 GSL 文档,虽然有关于准随机序列常规 MC 集成的部分,但我没有看到任何将它们结合在一起的东西。此外,一两次 Google 搜索也没有找到任何看起来像广受信任的实现的东西。对于 C++ 中经过良好测试的 QMC 集成实现,我有哪些选择?

为了保持一致性,如果可以选择,我更愿意使用与 Mathematica 实现的 Halton-Hammersley-Wozniakowski 方法接近的方法

1个回答

鉴于 C++(或 C)的准蒙特卡洛积分器明显缺乏,我编写了自己的实现以与 GSL 一起使用。它没有经过特别充分的测试,也没有实现 Mathematica 的算法,但总比没有好。