使用ifort时遇到问题。我使用ifort / mpich1编译了一个代码,但每当我尝试在几个节点上运行代码时代码就会到达某个点并挂起并出现错误:
symbol lookup error ... undefined symbol __svml_round2
在探讨中,我很确定这是由于ifortvars shell脚本没有在计算节点上获取(如果我尝试在一个节点上串行激活代码,但是没有采购ifort变量我得到完全相同的错误)。
绕过此问题的最佳方法是什么?通过mpirun运行时似乎没有执行我的“.bashrc”文件,因为我在.bashrc文件中有“source ...”命令。我也尝试将该行添加到/etc/bash.bashrc文件中,但没有运气。或者我认为,当我编译时,静态链接可以解决问题所以我包括
-i-static
-static
用ifort编译但无效时,我仍然得到错误。
有谁知道如何绕过这个问题,主要是如何使用ifort进行编译,以便在运行已编译的程序时不需要“源ifortvars”(更理想的解决方案),或者如何推出我的路径,或者如何通过MPI呼叫获取变量?谢谢。
答案 0 :(得分:0)
您可以将环境变量作为mpirun / mpirun_rsh命令的一部分。
e.g。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib;mpirun_rsh -ssh -host -np 2 -hostfile hostlist /home/usr1/app.exe -x /home/usr1/config/appconfig.xml