openmpiとmpichを切り替えるには、デフォルトでLinux端末を使用してください。

openmpiとmpichを切り替えるには、デフォルトでLinux端末を使用してください。

mpicc(パラレル gcc) を使用してコードを実行する必要があります。サーバーには2つのmpiccパッケージ、すなわちOPENMPIandがインストールされています。 OPENMPI の mpicc がデフォルトで使用されます。MPICH/usr/local/OPENMPI/usr/local/MPICH

which mpicc

プログラム/usr/local/OPENMPI/bin/mpicc

私のコードはMPICH用に作成されました。毎回フルパスを使用してMPICHのmpiccを呼び出す代わりに。/usr/local/MPICH/bin/mpiccタスクが終了するまでデフォルト値に設定してから再度変更する簡単な方法はありますか?/usr/local/OPENMPI/bin/mpicc

ベストアンサー1

私はあなたがaliasあなたの場合に完璧だと思います。.profileまたはに次のように追加できます.bash_profile

alias mympicc='/usr/local/MPICH/bin/mpicc'

より永続的ですが、それでも元に戻すことができる解決策は、場所をMPICHルートの前に追加することですOPENMPI。これは、以下を追加するか、.profile次を追加することで簡単に行うことができます.bash_profile

export PATH="/usr/local/MPICH/bin:$PATH"

そのようなコマンドを入力すると、そのコマンドがmpicc現在のディレクトリにない場合はシェルが順番PATHに検索されるため、優先順位を設定するにはそのコマンドをどこに置くことが重要です。

2つの間を簡単に「切り替える」ために使用できるスイッチの種類を望む場合は、機能の種類を作成.bashrc(または.profile/.bash_profile ):

use_mpicc () {
    shopt -s nocasematch
    case "$1" in
        mpich) export PATH="...:/usr/local/MPICH/bin:/usr/local/OPENMPI/bin:..." ;;
        openmpi) export PATH="...:/usr/local/OPENMPI/bin:/usr/local/MPICH/bin:..." ;;
        *) return 1 ;;
    esac
    shopt -u nocasematch
}

この例では、実際のパスの代わりに省略記号を使用しています。 :メソッドを使用するよりも、実際にこの関数(使用する場合)にフルパスを指定することをお勧めしますPATH="Stuff_I_Need_added:$PATH"。これにより、関数が呼び出されるたびにパスが追加され続け、潜在的にパスがPATH非常に長くなる可能性があります。

次のように呼び出すことができます。

$ use_mpicc mpich
$ # OR
$ use_mpicc openmpi

設定の詳細をご覧ください。

おすすめ記事