私は次のようなコードの塊を持っています
for i in range(0, len(a))
b[i] = func(a[i])
ここで、a と b は同じ長さの配列で、a は与えられ (かつ大きい)、func は多くのローカル変数を持つがグローバル変数を使用しない関数です。
func の計算を複数の CPU に分散したいと考えています。おそらく multiprocessing モジュールを使用する必要がありますが、関連する例は見つかりませんでした。手伝ってくれる?ありがとう。
私は次のようなコードの塊を持っています
for i in range(0, len(a))
b[i] = func(a[i])
ここで、a と b は同じ長さの配列で、a は与えられ (かつ大きい)、func は多くのローカル変数を持つがグローバル変数を使用しない関数です。
func の計算を複数の CPU に分散したいと考えています。おそらく multiprocessing モジュールを使用する必要がありますが、関連する例は見つかりませんでした。手伝ってくれる?ありがとう。
multiprocessingドキュメントの最初のコード例を参照してください。
from multiprocessing import Pool
# you could define `func`, `a` here
if __name__=="__main__":
p = Pool() # use all available CPU cores
b = p.map(func, a)
プロセスプールを使用します。あなたは私のgithubで完全なサンプルを見ることができます:https ://github.com/mariazverina/codejam/blob/master/src/main.py
from multiprocessing import Pool
p = Pool(4) # set to number of cores
b = p.map(func, a)