1. Ray环境搭建与第一个分布式任务

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的干净虚拟环境。