2012-01-12 35 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

相關問題