Python程序的脏并行化

时间:2014-06-23 07:39:00

标签: python numpy scipy scikit-image

我有一个程序在循环中加载2600个图像,进行一些处理并返回一个值。伪代码:

for file in files:
  codes[file] = my_function(file)
return codes

问题是 - 这个过程大约需要20-30分钟,而且似乎只使用一个CPU核心。我正在寻找一种快速而肮脏的方式在更多核心上运行它,可能是将列表分成两部分。我已经阅读了很多关于Python及其问题/解决方案的内容,但我无法确定下一步该做什么。我该怎么做?

仅供参考2009年使用Python 2.7 Macbook Pro(Core 2 Duo)w / Numpy Scipy Scikit-image& OpenCV的。

1 个答案:

答案 0 :(得分:4)

最简单的方法是multiprocessing

from multiprocessing import Pool

with Pool() as p:
    all_codes = p.map(my_function, files)
return {f:code for code, f in zip(all_codes, files)}