3

ループで 2600 枚の画像を読み込み、何らかの処理を行って値を返すプログラムがあります。擬似コード:

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

問題は、このプロセスに約 20 ~ 30 分かかり、1 つの CPU コアしか使用していないように見えることです。おそらくリストを2つに分割することにより、これをより多くのコアで実行するための迅速で汚い方法を探しています。私はPythonについてたくさん読んだことがありますが、それは問題/解決策ですが、次に何をすべきかわかりません。どうすればいいですか?

参考までに、2009 Macbook Pro (Core 2 Duo) で Python 2.7 を使用し、Numpy Scipy Scikit-image & OpenCV を使用しています。

4

1 に答える 1

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)}
于 2014-06-23T07:42:33.260 に答える