はい、それは可能であり、コンパイルされた MPI コードを で実行するのと何ら変わりはありませんmpirun
。各ノードでコードを実行するために必要な実行可能ファイル、ライブラリ、およびサポート ファイルを確認することに関する通常の警告はすべて、コンパイルされた MPI アプリケーションと同様に Python にも適用されます。
Grid Engine 自体 (または、少なくとも私が使用した Oracle 以前の商用前のバージョン) は、MPI自体について何も知らないため、ジョブがリソース マネージャーからスロット割り当てを取得した後、SGE ジョブ スクリプトはおそらく次のようにする必要があります。実行のために独自のマシン ファイルを作成 (または起動スクリプトを実行) し、実行のためにコードを実行するノードを準備するために必要な他の呪文を実行します。古い SGE wiki とメーリング リストには、実行中の SGE ジョブ スクリプト内で MPI マシン ファイルを設定するための便利な例がたくさんありました。この内部の詳細はほぼ完全に MPI フレーバー固有であり、ほとんど SGE とは無関係であるため、詳細を提供するのは少し難しいですが、最終的にジョブ ファイル内で Python アプリケーションを実行するコマンドは次のように単純になります。
mpirun <options here> python yourapp.py
また
mpirun <options here> yourapp.py
yourapp.py
実行権限があり、適切なシバン行が含まれている場合。MPICH2 と SGE を使用してかなり大きなmpi4pyアプリケーションをいくつか実行しましたが、後者は問題なく実行できました。