各入力値が,(たとえば500MB)の大文字小文字の入力値が一般的に同じ場合、multiprocessing.Pool.map()
と並行して多くの結果を計算するのが効率的ですか? multiprocessing
の仕組みは、各入力値のpickled版をプール内の各ワーカープロセスに送信することによると思います。最適化が行われない場合は、入力値ごとに多くのデータをmap()
に送信することを意味します。これは本当ですか?私はすぐにmultiprocessing
コードを見ましたが、何も明らかではありませんでした。より一般的にいつPythonでmultiprocessing.Poolでmap()を使用しないのですか?大入力値の場合
、シンプルなものを並列化戦略をあなたがそれらの各ベクトルは常に異なっているタプル(vector, very_large_matrix)
、あること、言っ万個の値にmap()
を行うようお勧めしますが、唯一の5種類が非常に大きな存在と言っているところ行列?
PS:大きな入力が実際に「徐々に」が表示される行列:2,000ベクトルが最初最初行列と一緒に送られ、その後、2000のベクトルが第2のマトリックスで送信され、など
私は[Pythonマルチプロセッシング:プロセス間で大規模な読み取り専用オブジェクトを共有すると思いますか?](http://stackoverflow.com/q/659865/1132524)では、探している回答があるかもしれません。 –
入力いただきありがとうございます。あなたが参照する質問とこれとの違いは、大きな行列は本質的にマップの入力値*であることです(リンクされる質問は単一の大きなオブジェクトを使用するだけです)。さらに、上の回答の中のいずれの解決策もこの質問の場合に適合しているようには見えません。 – EOL