OpenMPI strongly recommends使用他们的包装器编译器。在幕后,他们的包装器编译器mpiCC调用gcc(默认情况下?)并为MPI代码添加必要的标志进行编译。但是,其他编译器提供比gcc更多的描述性错误消息(例如clang,它也是GCC兼容的)。所以,我希望能够在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兼容的)。这应该有效,但我正在寻找一个更简单的解决方案。
答案 0 :(得分:11)
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 ++。