numpy の機能を分散メモリ クラスターでの操作に拡張する Python ライブラリを探しています。つまり、「プログラマーが配列を、異なるプロセッサに配置された複数の独立した配列ではなく、単一のグローバル配列と見なす並列プログラミング モデルです。 "
Matlab については、MIT の Lincoln Lab がpMatlabを作成しました。これにより、並列プログラミングの側面の詳細についてあまり心配することなく、クラスターで行列代数を実行できます。(上記引用元)
ディスクベースのストレージの場合、python 用の pyTables が存在します。クラスタ内での計算の分散方法を最適化するのではなく、ディスク上の大きなデータに関して計算を「分散」する方法を最適化します。- これはかなり似ていますが、まだ重要な側面が欠けています。
目的は、クラスターからパフォーマンスの最後のビットを絞り出すことではなく、単一のマシンには大きすぎる科学的計算を (半対話的に) 行うことです。
Pythonにも同様のものが存在しますか? 私のウィッシュリストは次のとおりです。
- 積極的に維持
- numpyの代わりにドロップイン
- あるいは、 numexprと同様の使用法
- 並列プログラミング部分の高度な抽象化: つまり、ユーザーが明示的に MPI を使用する必要はありません。
- 分散メモリ クラスタでのデータ局所性のサポート
- クラスタ内のマルチコア マシンのサポート
これはおそらく、歯の妖精を信じることに少し似ていますが、誰にもわかりません...
私はこれまでに見つけました:
パシフィック ノースウェスト国立研究所による Global Array 用の Python インターフェイスがあります (存在する/存在していました)。トピック「NumPy と Global Arrays Toolkit を使用した Python での高性能並列計算」の下のリンクを参照してください。(特に「GA_SciPy2011_Tutorial.pdf」。)しかし、これもまた消えてしまったようです。
DistNumPy :このペーパーで詳しく説明します。しかし、プロジェクトは放棄されたようです。
パッケージを知っているか、上記の 2 つのいずれかを使用したことがある場合は、その使用経験について説明してください。