我有一个程序可以循环加载 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/