【发布时间】:2011-12-14 03:10:07
【问题描述】:
我有一个蒙特卡洛模拟器,它有一个计算函数,它在一个循环中调用了很多次(数百万次或更多次)。为了加快速度,我想将其拆分为对模拟器的多个并行线程调用。 IE。如果我想总共运行 100 万次,请将其拆分为 4 - 250,000 次并行运行。每个线程都使用相同的变量名,我该如何处理才不会发生冲突?我是否必须使用不同命名的变量创建 4 个不同版本的模拟器?
我已经开始使用 Python 线程模块编写一个版本,但可以肯定变量仍然存在问题。
有什么建议吗?
感谢您的宝贵时间。
凯尔
【问题讨论】:
-
我真的不知道模拟是关于什么的,但如果它(例如)在每次迭代中使用一个列表项,您可以使用偏移量将其拆分,即
thread 1: f(m[x]), thread 2: f(m[x+1]), ... thread n: f(m[x+(n-1)])然后递增 @987654323 @ 按线程数x += n。另外,请考虑使用cython。
标签: python parallel-processing simulation montecarlo