コードが1つ重いループを改善するためには、スピードアップが必要です。このようなコードに対してマルチプロセスを実装するにはどうすればよいですか? Numba(又はcython)と共にThreadPoolExecutor
HeavyComputationThatIsThreadSafe1
機能のみ配列としないPythonオブジェクトを使用している場合、私はconcurrent futures(又はpython2 backport)を使用してなるマルチプロセッシングネストされたpythonループ
for x1 in range(a**l):
for x2 in range(a**l):
for x3 in range(a**l):
output[x1,x2,x3] = HeavyComputationThatIsThreadSafe1(x1,x2,x3)
[あなたの他の質問](http://stackoverflow.com/q/37081288/1461210)へのShadowRangerのコメントはまだありません - あなたがコミットしているならば、世界のすべてのスレッドはほとんど窪みを作っていません「HeavyComputationThatIsThreadSafe1' *を10億回以上呼び出す*。 'HeavyComputationThatIsThreadSafe1'への一回の呼び出しにかかる時間は何秒ですか?その数を1073741824で掛けて、あなたが持っているコアの数で割ってください。これにより、マルチプロセッシングで実現できる最高のシナリオの実行時間が得られます。 –
リンク先の[HeavyComputationThatiIsThreadSafe'(http://stackoverflow.com/a/37100607/392949)のパフォーマンス上の問題に対処しました。あなたが言及したデータサイズであっても、合理的な最適化セットを取る場合、3つのネストされたループ全体を処理するには、8GB〜45GBのメモリしか必要としません。 – JoshAdel