我有一个程序可以循环加载2600张图像,进行一些处理并返回一个值.伪代码:
for file in files:
codes[file] = my_function(file)
return codes
问题是-此过程大约需要20-30分钟,并且似乎仅使用一个CPU内核.我正在寻找一种快速而肮脏的方法来在更多的内核上运行它,也许是通过将列表分成两部分来实现的.我已经阅读了很多有关Python及其问题/解决方案的文章,但我不知道下一步该怎么做.我该怎么做呢?
FYI在2009 Macbook Pro(Core 2 Duo)上使用Python 2.7(带有Numpy Scipy Scikit图像和图片) OpenCV.
解决方法:
最简单的方法是进行多重处理:
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)}