11

OpenMPIは、ラッパー コンパイラを使用することを強く推奨しています。舞台裏では、ラッパー コンパイラ mpiCC が gcc を呼び出し (デフォルトで?)、MPI コードのコンパイルに必要なフラグを追加します。ただし、gcc よりも詳細なエラー メッセージを表示するコンパイラもあります (たとえば、gccと互換性のあるclangなど)。なので、Open MPI で clang を使えるようにしたいです。

私は試した:

1) コンパイラを指定するための mpiCC オプションを見つけますが、

mpiCC --help

g++ ヘルプ ページを吐き出すだけです。

2) --showme:compile オプションを使用する

mpiCC --showme:compile ./test-boost.cc -lboost_mpi -lboost_serialization -o test-boost

gcc を呼び出す代わりに、MPI コードのコンパイルに必要なフラグを出力します。その後、clang でそれらを使用できます (GCC と互換性があるため)。これでうまくいくはずですが、もっと簡単な解決策を探しています。

4

2 に答える 2

16

Open MPI FAQには、ラッパーによって呼び出されるコンパイラーのデフォルトの選択をオーバーライドするように設定できる環境変数が記載されています。

http://www.open-mpi.org/faq/?category=mpi-apps#override-wrappers-after-v1.0

OpenMPIのバージョンに応じて、OMPI_CXX=clang++またはを設定する必要がありますOMPI_MPICC=clang。OpenMPI v.1.1以降OMPI_CXXでは、ラッパーコンパイラを使用してから呼び出します。ラッパーは順番にclang++を呼び出します。

于 2013-01-22T17:35:49.087 に答える
2

OpenMPI の公式 FAQ に記載されているように、環境変数としてOMPI_CC=clangまたはを設定してもうまくいきません。を使用するときはいつでも、それらを先に取り付ける必要があります。OMPI_CXX=clang++.bashrcmpicc

OMPI_CC=clang mpicc --showme:command

ではMakefile、 を設定CC=OMPI_CC=clang mpiccしました。これは私にとってはうまくいきます。

于 2015-09-09T22:06:24.340 に答える