如何解决如何使用 Python 并行化数据集模拟以进行蒙特卡罗研究?
我正在用 Python 进行蒙特卡罗模拟研究。我正在评估一些估算器的质量。我的工作流程如下:
- 模拟假数据集的一个实例
- 从这个数据集中计算一些统计数据
- 存储结果以供日后分析
事实证明,就计算时间而言,进行计算的成本并不高。然而,模拟数据集的成本似乎更高。例如,在我的本地机器上完成上述步骤的完整序列大约需要 6 秒。在我的本地机器上模拟数据集大约需要 4.5 秒。
在我们的研究中,我们可能需要稍微调整估算器,而不是模拟部分。因此,提前生成大量这些合成数据集,将它们存储起来,并在进行一些测试时将它们读入内存会很有趣。我可以访问具有许多 CPU 内核的研究服务器,我想利用它。但是,我对如何并行化任何语言的代码一无所知,更不用说 Python。现在,我已经定义了一个函数 simulate_dataset()
,它将准确地输出我需要在每次运行时存储的 numpy
数组。
T = 65
n = 78
N = 100
K = 2
n_runs = 100
factors = np.zeros((n_runs,T,n,K))
assets = np.zeros((n_runs,N))
variances = np.zeros((n_runs,n*T,K))
dF,dX,V = simulate_dataset(T,N)
for i in range(n_runs):
factors[i,...],assets[i,variances[i,...] = simulate_dataset(T,N)
谁能提供一个关于如何并行化上面的 for
循环的好主意?这是很难做到的事情吗?这个话题有什么好的介绍?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。