【发布时间】:2014-07-04 13:35:11
【问题描述】:
我正在编写一个 Python 脚本 (in Python 2.7),其中我需要在一个范围内生成大约 500,000 个统一随机数。我需要这样做 4 次,对它们进行一些计算并写出 4 个文件。
目前我在做:(this is just part of my for loop, not the entire code)
random_RA = []
for i in xrange(500000):
random_RA.append(np.random.uniform(6.061,6.505)) # FINAL RANDOM RA
random_dec = []
for i in xrange(500000):
random_dec.append(np.random.uniform(min(data_dec_1),max(data_dec_1))) # FINAL RANDOM 'dec'
生成范围内的随机数。我正在运行 Ubuntu 14.04,当我运行该程序时,我还会打开我的系统管理器来查看我拥有的 8 个 CPU 是如何工作的。我似乎注意到,当程序运行时,8 个 CPU 中只有 1 个似乎以 100% 的效率工作。所以整个程序需要我大约 45 分钟才能完成。
我注意到使用模块 Multiprocessing 可以充分利用所有 CPU 资源
我想知道在我的示例中这是否足够:
random_RA = []
for i in xrange(500000):
multiprocessing.Process()
random_RA.append(np.random.uniform(6.061,6.505)) # FINAL RANDOM RA
即只添加multiprocessing.Process()这一行,够吗?
【问题讨论】:
-
@AleksanderLidtke 我确实读过它,我认为上述方法可能有效。但在尝试之前,我想知道它是否会来自专家
-
回答您的问题:这绝对不够。
-
@freakish 我该怎么做?
-
@Srivatsan 从阅读文档开始。您需要将一个函数传递给
Process()构造函数。但是有太多细节无法解释。阅读 Aleksander 提供的文档。
标签: python python-2.7 multiprocessing