python - Python 程序的脏并行化

标签 python numpy scipy scikit-image

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

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

问题是 - 这个过程大约需要 20-30 分钟,而且似乎只使用一个 CPU 内核。我正在寻找一种快速而肮脏的方法来在更多内核上运行它,也许是通过将列表一分为二。我已经阅读了很多关于 Python 及其问题/解决方案的文章,但我不知道下一步该做什么。我该怎么做?

仅供引用,在带有 Numpy Scipy Scikit-image 和 OpenCV 的 2009 Macbook Pro(Core 2 Duo)上使用 Python 2.7。

最佳答案

最简单的方法是使用多处理:

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)}

关于python - Python 程序的脏并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24360694/

相关文章:

python - 重新排列numpy 2D数组的列

python - 了解 numpy.array 的形状

Python:Scipy.optimize Levenberg-marquardt 方法

python - 从函数返回带有单个项目的元组

python - 使用 Google App Engine Python 2.7 在 Django 1.2 中自定义标签

python - 用填充的 0 来通配一个范围 - python

python - 如何在 Python 中并行化列表元素

python - 在 python 中使用公差唯一化数组/列表(相当于 uniquetol)

python - 最小化受约束的函数

python - 如何从 3D 不规则数据中切片 2D 网格?