MPIRUN已配置主机文件与SSH权限仍未在Worker节点执行求助
解决MPI进程仅在主节点运行的问题
问题分析
你当前的MPI命令仅在主节点启动两个进程,未分配到Worker虚拟机,同时出现Invalid MIT-MAGIC-COOKIE-1 key警告,核心原因是主机文件配置、SSH访问或脚本路径存在问题,和Worker是虚拟机无关。
具体解决步骤
修正主机文件格式
你的machinefile格式不符合MPI要求,需明确每个节点的进程槽数,修改为:dell@172.16.197.1 slots=1 kypo-1@172.16.197.129 slots=1slots=N表示该节点可承载N个MPI进程,这样mpirun才会将进程分配到Worker节点。确保SSH免密登录完全正常
验证主节点dell用户无需密码即可登录Worker节点:ssh kypo-1@172.16.197.129 echo "SSH test success"如果需要输入密码,重新配置SSH公钥:在主节点执行
ssh-keygen生成密钥,再用ssh-copy-id kypo-1@172.16.197.129将公钥复制到Worker节点。保证脚本在所有节点路径一致
MPI要求执行的脚本在所有节点的可访问路径一致:- 将主节点的
helloworld.py复制到Worker节点的相同路径(比如主节点当前目录是/home/dell/demo,则Worker节点也要有/home/kypo-1/demo/helloworld.py) - 执行命令时使用绝对路径,避免路径差异:
mpirun -np 2 --machinefile machinefile python3 /绝对路径/helloworld.py
- 将主节点的
消除MIT-MAGIC-COOKIE警告
该警告是X11转发导致的,在mpirun命令中禁用X11转发即可:mpirun -np 2 --machinefile machinefile --mca plm_rsh_agent "ssh -x" python3 helloworld.py先做基础连通性测试
用hostname命令验证节点分配是否正常:mpirun -np 2 --machinefile machinefile hostname如果输出包含Worker节点的主机名,说明节点配置正常,再运行你的Python脚本。
关于虚拟机的疑问
这个问题和Worker是虚拟机无关,虚拟机与物理机在MPI运行逻辑上没有区别,只要网络连通、SSH配置正确、脚本路径一致,就能正常分配进程。
内容的提问来源于stack exchange,提问作者aneela
相关产品推荐
相关产品推荐

