gpt4 book ai didi

python - 将独立循环分解为并行线程/进程的简单且最简单的方法

转载 作者:太空狗 更新时间:2023-10-30 00:37:15 29 4
gpt4 key购买 nike

  1. 我有一个密集计算循环,我希望它们是使用多核处理器加速,因为它们是独立的:全部并行执行。最简单的方法是什么 python ?
  2. 让我们想象一下,这些计算必须在最后相加。如何轻松地将它们添加到列表或浮点变量中?

感谢您所有的教学回答和使用 python 库 ;o)

最佳答案

根据我的经验,多线程可能不是加快速度的可行选择(由于 Global Interpreter Lock)。

一个不错的选择是 multiprocessing模块。这可能会或可能不会很好地工作,具体取决于您最终必须从一个进程传递到另一个进程的数据量。

另一个好的选择是考虑使用 numpy用于您的计算(如果您还没有)。如果您可以矢量化您的代码,那么即使在单核上,您也应该能够实现显着的加速。根据您具体在做什么以及您构建的 numpy,它甚至可以透明地跨多个内核分配计算。

edit 下面是使用 multiprocessing 模块执行简单计算的完整示例。它使用四个过程来计算从零到九的数字的平方。

from multiprocessing import Pool

def f(x):
return x*x

if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
inputs = range(10)
result = pool.map(f, inputs)
print result

这只是一个简单的说明。考虑到 f() 的微不足道的性质,这个并行版本几乎肯定会比串行计算相同的东西慢。

关于python - 将独立循环分解为并行线程/进程的简单且最简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652124/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com