我一直在尝试解决问题,以便能够在多个节点上运行openmpi。
最初,我遇到了$PATH
和$LD_LIBRARY_PATH
变量未从.bashrc
文件中由openmpi会话更新的问题,因此我手动添加了--prefix /path/to/openmpi
来解决此问题。
结果发现,甚至连anaconda路径变量也没有被加载。因此,我最终需要从我的主目录中源化~/.bashrc
文件。我该怎么做?请有人能帮帮我吗?
更新01:
我编写了一个简单的shell脚本来检查python的版本。
python --version
接着我尝试在本地和远程机器上使用openmpi运行它:
mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script
它返回
Python 2.7.12
Python 3.6.8 :: Anaconda, Inc.
Python 3.6.8 :: Anaconda, Inc.
Python 2.7.12
我怀疑openmpi在运行远程进程时没有调用/设置正确的环境变量,这个猜测得到了证实。有哪位熟悉多节点openmpi的人能帮忙吗?
更新02:
一个简单的ssh环境grep告诉我,我的环境变量没有被更新,这可能是问题的原因。(我甚至已经尝试在~/.ssh/environment文件中设置它)
$ ssh remote-node env | grep -i path
看起来只加载了/etc/environment文件,并且只设置了基本路径。我该如何纠正这个问题?
$HOME/.ssh/environment
,但在提出具体建议之前,我们确实需要看到完整的情况。 - tripleee.bashrc
,假设它仅影响他们的交互式 shell,因此他们可以随意定义覆盖内置命令的函数,设置异常的DEBUG
陷阱或command_not_found
钩子,并进行其他可以使脚本表现不可预测的操作。 - Charles Duffy