MPI を使用する並列コードがあります。このコードを使用する適切な方法は、PC/Cluster でソースからコンパイルし、次のように実行することです。
mpiexec -n X ./application -options
残念ながら、このコードを使用している一部の人々は、ソースからビルドするのが少し難しいと感じている *nix に挑戦しています (理由は聞かないでください)。これらのユーザーは、自分のデスクトップ/ラップトップでのみコードを使用します。
そのようなユーザーのために、私は単純に静的バイナリをコンパイルします (Linux を実行しているほとんどの PC で実行される十分に古い glibc を備えた十分に古い OS で)。その後、ユーザーは次のようにコードを実行できます。
./application -options
だから今私の質問は、ユーザーが次のようなことをできるように、静的バイナリと一緒に mpiexec/mpirun を出荷するにはどうすればよいかということです。
./mpiexec -n 2 ./application -options
このようにして、デスクトップで複数のコアを利用することもできます。今まで、私は MPI をインストールしてソースからコードをコンパイルするなど、正しいことを行うように彼らに言い続けてきました。
いくつかのテストを行った結果、ハイドラをコンパイルして出荷すると、次のようにコードを実行できることがわかりましmpiexec.hydra
た hydra_pmi_proxy
。
./mpiexec.hydra -n 2 ./application -options
しかし、これが正しいアプローチであるかどうかはわかりませんか?これにより問題が発生しますか? Windoze バイナリ (Cygwin で実行) についても同じことを考えています。
もう 1 つのオプションは、すべてが事前にビルドされた VBox イメージですが、大きなファイルのダウンロードが問題になります。