4

2 つのパラメーター (k, m) を指定すると、4 次元の numpy 配列が返されるコードがあります。私の要件は、k,m < N で (k,m) の可能な値についてこの配列を計算し、それらを合計する必要があることです。 . これはシリアルで遅いので、Pythonでマルチプロセッシングモジュールを学習しようとしています。 https://docs.python.org/2/library/multiprocessing.html

基本的に、8 つのコアを使用してこれらの 4 次元配列を並列に計算し、それらをすべて加算したいと考えています。さて、問題はこれをどのように設計するかです。各配列は約 100 MB で、N は約 20 です。したがって、キューに 20**2 * 100 MB を格納することはできません。解決策は、各プロセスが結果を追加し続ける結果配列である共有メモリオブジェクトを持つことです。

multiprocessing には、共有メモリまたはサーバー プロセスを使用してこれを行うための 2 つの方法があります。どちらもマルチディム配列をサポートしていないようです。誰でも私のプログラムを実装する方法を提案できますか? 事前にt​​hx。

4

1 に答える 1