2011-07-04 8 views
10

python'smultiprocessingモジュールを使用してマルチコアLinuxサーバーを利用したいと思います。Python - プロセス間でナンシーな配列を共有しますか?

同じ共有メモリへの読み取り/書き込みアクセスがすべてのプロセスに必要です。

listまたはqueueを使用する代わりに、多次元numpyアレイを共有オブジェクトとして使用できますか?

答えて

6

thisをご覧ください。私は簡単ではないようですが、それは実行可能です。メモリを共有することが容易になりSturla MoldenとG. Varoquauxによってnumpyのための共有メモリ・モジュール:Webページのことわざの簡単な説明がありますhttps://bitbucket.org/cleemesser/numpy-sharedmem/issue/3/casting-complex-ndarray-to-float-in

+0

ありがとうございます。良いスタートのように見えます。 – user3262424

8

は、私はあなたが探しているものを知っていると思いますNumPy配列の形式のプロセス間もともとSciPy-userメーリングリストに投稿されていました。

私自身はちょうどその方法を使用しています。プロセス間でNumPy配列を共有する私のために非常にうまく動作します。

0

子プロセスをfork()した後にnumpy配列を変更しなくても、子プロセスが何らかの理由でオブジェクトをコピー・オン・ライトするため、RAMが急増することがわかります。 RAMを保つように思わ

あなたが制限(または全体的に緩和する?)ことができます。この問題フォークBEFORE

"yourArray.flags.writeable = False" 

を設定することにより、() 'ING /プール()' INGはダウンを使用し、LOT少ないです他の方法より面倒です:)

関連する問題