0

したがって、700,000行程度のファイルを読み取るスクリプトがあります。各行について、その行から計算した値のリストを返します。マルチプロセッシングを使用する前は、forループを使用して、各行の値をグローバル変数にインクリメントしていました(最終的には合計を求めているため)。残念ながら、マルチプロセッシングモジュールでは、それらが別個のプロセスであるため、グローバル変数に何かを追加することはできません。代わりに、各プロセスに自分が求めている値を返してもらい、Pool.mapを使用して返された値の膨大なリストを作成しました。次に、そのリストをループして、自分が求めている合計を取得できます。これは非常にメモリを消費します。助言がありますか?これはおそらく読みにくいと思いますので、必要に応じて明確にすることができます。ありがとう!

4

1 に答える 1

0

各プロセスでアキュムレータを保持し、最後にそれらすべてのアキュムレータを合計します。プロセスごとに1つの値のみを保存する必要があります。

于 2012-07-07T20:33:38.400 に答える