このコードは、私がやろうとしていることの構造を示しています。
import multiprocessing
from foo import really_expensive_to_compute_object
## Create a really complicated object that is *hard* to initialise.
T = really_expensive_to_compute_object(10)
def f(x):
return T.cheap_calculation(x)
P = multiprocessing.Pool(processes=64)
results = P.map(f, range(1000000))
print results
問題は、各プロセスが、一度計算された元の T を使用するのではなく、T の再計算に多くの時間を費やすことから始まることです。これを防ぐ方法はありますか?T には高速 (ディープ) コピー メソッドがあるので、Python に再計算の代わりにそれを使用させることはできますか?