由于它们是独立的,因此可以使用多核处理器来加速:
全部并行执行。最简单的方法是
Python?
感谢您的所有教学方法的答案,并使用python库; o)
最佳答案
根据我的经验,多线程可能不是加快速度的可行选择(由于Global Interpreter Lock)。
一个很好的替代方法是 multiprocessing
模块。根据您最终必须从一个过程传递到另一个过程的数据量,这可能行得通,也可能行不通。
另一个不错的选择是考虑使用 numpy
进行计算(如果还没有的话)。如果可以对代码进行矢量化处理,那么即使在单个内核上,您也应该能够实现显着的加速。根据您正在执行的操作以及numpy
的构建,它甚至可以透明地将计算分布到多个内核中。
编辑这是使用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/