mpi 并行程序中有关libimf.so的问题以及破解之法
标签:
杂谈 |
利用mpi(绑定ifort编译器) 编译文件mpi程序过程中出错提示说:
/opt/intel/Compiler/11.0/074/lib/intel64/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
按照网上其他先辈的解释,是编译过程中只连接到到intel的math libraries,而没有连接到系统的math libraries. 解决办法是把系统的math libraries加入,即编译命令mpif90 后加上-limf -lm,或者加-i_dynamic:
mpif90 -limf -lm 程序文件或
mpif90 -i_dynamic 程序文件
编译文件没有出错后但执行可能出问题说:
can't load libimf.so libaray
之类的话,原因是由于intel compiler的环境没设置好,不仅要把intel的bin目录加到 .bashrc文件中,而且要把与编译器相关的库文件路径加入 .bashrc,在命令窗口输入vi ~/.bashrc 然后在最下面加入
source /opt/intel/Compiler/11.1/046/bin/intel64/iccvars_intel64.sh
source /opt/intel/Compiler/11.1/046/intel64/ifortvars_intel64.sh
前面的斜体路径可以自行调整,这样加入了c和fortran编译器的库的路径。
于是运行程序就可以没问题了。
/opt/intel/Compiler/11.0/074/lib/intel64/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
按照网上其他先辈的解释,是编译过程中只连接到到intel的math libraries,而没有连接到系统的math libraries. 解决办法是把系统的math libraries加入,即编译命令mpif90 后加上-limf -lm,或者加-i_dynamic:
mpif90 -limf -lm 程序文件或
mpif90 -i_dynamic 程序文件
编译文件没有出错后但执行可能出问题说:
can't load libimf.so libaray
之类的话,原因是由于intel compiler的环境没设置好,不仅要把intel的bin目录加到 .bashrc文件中,而且要把与编译器相关的库文件路径加入 .bashrc,在命令窗口输入vi ~/.bashrc
source /opt/intel/Compiler/11.1/046/bin/intel64/iccvars_intel64.sh
source /opt/intel/Compiler/11.1/046/intel64/ifortvars_intel64.sh
于是运行程序就可以没问题了。
http://s10/middle/453b9efb4a56974772309&690并行程序中有关libimf.so的问题以及破解之法" TITLE="mpi 并行程序中有关libimf.so的问题以及破解之法" />
前一篇:信仰

加载中…