複数のことを行う必要がある画像処理アプリケーションを作成し、可能な限りリアルタイムで処理する必要があります。 データの取得とその処理は、主にパフォーマンス上の理由から、別々のプロセスで実行されます。データ自体はかなり大きい(2MPixの16ビットグレースケール画像)。共有アレーを使用したPythonでの高速FFTのメモリアラインメント
この投稿に記載されているように、プロセス間で配列を共有できます。 How do I pass large numpy arrays between python subprocesses without saving to disk?(私はnumpy-sharedパッケージのshmarrayスクリプトを使用しています)。 問題なくこれらのデータに付属のNumpy FFTを実行できますが、かなり遅いです。
FFTWを呼び出す方がはるかに高速ですが、メモリを十分に活用するためには、メモリを整列した配列に対して操作を実行する必要があります。
質問:Numpyのような配列をプロセス間で作成し共有する方法はありますか?つまり、同時にメモリが整列することが保証されていますか?
あなたは何のPython FFTWバインディングを使用していますか?これらのバインディングは、正しく整列されたメモリブロックを割り当てる方法を提供するはずです。 –
あなたは正しいですが、難しい部分は、それらの配列を複数のプロセス間で共有する必要があることです。私はこれらの関数が "共有"配列を作成しないことを確信しています。 – bubla