1. Ray环境搭建与第一个分布式任务
任务目标
在本机安装Ray并启动本地集群,通过提交一个分布式函数任务验证Ray的基本调度与执行能力。完成本案例后,你将拥有一个可用的Ray运行环境,并掌握最小化的分布式任务提交与结果获取方式。
环境与依赖
- 操作系统:Linux / macOS / Windows(WSL2)
- Python版本:3.8~3.12
- 安装命令:
pip install "ray[default]"
核心实现
以下代码完成三件事:初始化Ray本地集群、定义一个远程函数、提交并获取执行结果。这是Ray的最小可用闭环。
# ray_first_task.py
import ray
# 启动本地Ray集群(无需额外配置)
ray.init()
# 通过@ray.remote将普通函数转为分布式任务
@ray.remote
def compute_square(x: int) -> int:
return x * x
# 提交4个并行任务,返回ObjectRef列表
object_refs = [compute_square.remote(i) for i in range(4)]
# 阻塞获取全部结果(顺序与提交顺序一致)
results = ray.get(object_refs)
print("计算结果:", results)
# 查看集群状态(验证调度是否生效)
print("集群资源:", ray.cluster_resources())
# 关闭集群
ray.shutdown()
运行方式
python ray_first_task.py
验证方法与通过标准
运行后观察以下两点,全部满足即判定通过:
- 终端输出
计算结果: [0, 1, 4, 9],证明4个远程函数被正确调度并返回结果; - 终端输出
集群资源: {'CPU': N, ...}(N为你的机器CPU核数),证明Ray本地集群已成功启动并注册资源。
若看到上述输出,说明Ray环境搭建成功,分布式任务调度链路已打通。
常见问题
- 端口冲突:若提示
Unable to connect to Redis,执行ray stop清理残留进程后重试。 - Windows原生环境:Ray不支持Windows原生运行,请使用WSL2或Docker。
- 版本兼容:若安装时出现依赖冲突,建议使用Python 3.9或3.10的干净虚拟环境。