在Intel MPI中用Intel oneAPI编译器替换经典Intel编译器的方法
使用Intel oneAPI编译器调用MPI例程的方法
直接用oneAPI编译器搭配MPI选项编译
Intel oneAPI的icx(C)、icpx(C++)、ifx(Fortran)编译器可以直接对接Intel MPI,不需要专门的mpiicx这类封装命令。编译时只需在调用编译器的基础上,加上MPI的编译和链接参数——这些参数可以通过mpicc -show(C)、mpicxx -show(C++)、mpif90 -show(Fortran)查看。
示例命令:- C代码:
icx $(mpicc -show:compile) your_code.c $(mpicc -show:link) -o your_executable - C++代码:
icpx $(mpicxx -show:compile) your_code.cpp $(mpicxx -show:link) -o your_executable - Fortran代码:
ifx $(mpif90 -show:compile) your_code.f90 $(mpif90 -show:link) -o your_executable
- C代码:
通过环境变量让MPI wrapper调用oneAPI编译器
如果习惯用mpicc/mpicxx/mpif90这类wrapper命令,只需设置环境变量指定对应的oneAPI编译器即可:- bash/zsh环境下:
export I_MPI_CC=icx export I_MPI_CXX=icpx export I_MPI_F90=ifx - csh/tcsh环境下:
setenv I_MPI_CC icx setenv I_MPI_CXX icpx setenv I_MPI_F90 ifx
- bash/zsh环境下:
设置完成后,直接用mpicc your_code.c -o your_executable这类命令,就会自动调用oneAPI的编译器完成编译链接。
- 验证配置是否正确
设置环境变量后,执行mpicc -show,输出里应该包含icx;mpicxx -show会显示icpx,mpif90 -show显示ifx,以此确认配置生效。
内容的提问来源于stack exchange,提问作者arc_lupus
相关产品推荐
相关产品推荐

