5

私は次のようなコードの塊を持っています

for i in range(0, len(a))
    b[i] = func(a[i])

ここで、a と b は同じ長さの配列で、a は与えられ (かつ大きい)、func は多くのローカル変数を持つがグローバル変数を使用しない関数です。

func の計算を複数の CPU に分散したいと考えています。おそらく multiprocessing モジュールを使用する必要がありますが、関連する例は見つかりませんでした。手伝ってくれる?ありがとう。

4

2 に答える 2

3

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)
于 2012-06-20T11:53:37.807 に答える
1

プロセスプールを使用します。あなたは私の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)
于 2012-06-20T11:55:28.093 に答える