You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Parallel Python无法发现工作节点,求调试指引

调试Parallel Python(pp)节点发现问题的指引

作为并行计算新手遇到这种节点识别不到的情况太正常了,咱们一步步来排查,先从最常见的网络和配置问题入手:

1. 优先确认网络连通性

两台机器的IP分别是192.168.1.4和192.168.56.1,这里要注意:192.168.56.x通常是虚拟机的虚拟网卡IP,大概率不是你Wi-Fi连接的真实网段!

  • 在机器1的命令行里执行:ping 192.168.56.1,看能不能收到回复
  • 反过来在机器2执行:ping 192.168.1.4,同样检查连通性
    如果ping不通,说明两台机器不在同一有效子网:
    • 去机器2的网络设置里找Wi-Fi的真实IP(不是虚拟网卡的),确保和机器1的192.168.1.x在同一网段
    • 重新确认两台机器确实连的是同一个Wi-Fi网络

2. 检查Windows防火墙设置

Windows防火墙默认会阻挡陌生端口的通信,pp默认用的是60000端口:

  • 临时关闭两台机器的Windows防火墙(测试用,之后再打开),重新运行机器1的脚本和机器2的ppserver,看能不能识别到节点
  • 如果临时关闭后能识别,就给pp添加防火墙规则:
    • 允许python.exe(或者直接指定ppserver.py对应的进程)通过私有网络(你的Wi-Fi)的入站和出站连接
    • 或者直接开放60000端口的TCP/UDP通信

3. 放弃自动发现,手动指定节点IP

自动发现(ppservers = ("*",))在复杂网络环境下经常失效,咱们先手动指定节点来验证:
修改机器1的SCRIPT1代码:

import pp
# 手动指定机器2的IP和端口(默认60000)
ppservers = ("192.168.56.1:60000",)
job_server = pp.Server(ppservers=ppservers)
for computer, cpu_count in job_server.get_active_nodes().iteritems():
    print "Found {} with CPU count {}!".format(computer, cpu_count)

运行后如果能识别到机器2,说明自动发现的网络广播有问题;如果还是不行,继续往下排查。

4. 确认机器2的ppserver启动状态

在机器2上,先确认ppserver确实在正常监听:

  • 重新启动ppserver,用明确的参数:python ppserver.py -a -p 60000(-a允许任意客户端,-p指定端口)
  • 打开命令行执行:netstat -an | findstr 60000,查看输出里有没有LISTENING状态的记录,确保端口确实在监听

5. 检查两台机器的pp版本一致性

不同版本的pp可能存在兼容性问题:
在两台机器的命令行分别执行:

python -c "import pp; print(pp.__version__)"

确保输出的版本号完全一致,如果不一样,卸载旧版本,重新安装相同版本:

pip uninstall pp
pip install pp==[版本号]

6. 测试基础任务提交

如果上面的步骤都没问题,咱们提交一个简单任务来验证连通性:
在机器1运行以下代码:

import pp

def simple_task(x):
    return x * 2

# 手动指定机器2节点
job_server = pp.Server(ppservers=("192.168.56.1:60000",))
print("当前活跃节点:", job_server.get_active_nodes())

# 提交任务到远程节点
job = job_server.submit(simple_task, (5,))
print("任务结果:", job())

如果任务能执行并返回10,说明连通正常;如果报错,根据错误信息(比如连接超时、拒绝连接)再针对性排查。


内容的提问来源于stack exchange,提问作者dreamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:02:41