2012-01-12 69 views
0

我有使用ifort的问题。我编译ifort/MPICH1一个代码,但每当我试图在多个节点上运行它的代码获取到一定程度并以一个错误挂起:如何将路径导出到计算节点,并行编程

symbol lookup error ... undefined symbol __svml_round2 

在闲逛,我敢肯定,这是由于到ifortvars shell脚本不是在计算节点上获得的(如果我试图在一个节点上串行激发代码,但没有获取ifort vars,我会得到相同的确切错误)。

绕过这个问题的最佳方法是什么?在运行mpirun时,似乎我的“.bashrc”文件没有被执行,因为我在.bashrc文件中有“source ...”命令。我也尝试将该行添加到/etc/bash.bashrc文件中,但没有运气。另外我想也许静态链接当我编译可以解决这个问题,所以我用ifort但无济于事编译时包含

-i-static 
-static 

,我仍然得到错误。

有谁知道如何绕过这个问题,本质上要么是如何用ifort进行编译,以便在运行编译后的程序(更理想的解决方案)时不需要“源ifortvars”,或者如何推出我的路径,或者如何通过MPI呼叫获取变量?谢谢。

回答

0

您可以将环境变量作为mpirun/mpirun_rsh命令的一部分。

例如

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

相关问题