Ray 程序能够通过利用底层Ray 运行时进行并行化和分发。Ray 运行时由在后台启动的多个服务/进程组成,用于通信、数据传输、调度等。Ray 运行时可以在笔记本电脑、单台服务器或多台服务器上启动。
启动 Ray 运行时的三种方式:
1、隐式通过ray.init()(在单台机器上启动 Ray,自动创建ray集群)
2、通过 CLI 显式(通过 CLI启动 Ray (ray start --head --port=6379))
3、显式通过集群启动器(启动 Ray 集群 (ray up ./xx.sh))
4、使用Ray 客户端连接到现有的 Ray 运行时
检查ray是否初始化
import ray
ray.init()
# 检查ray是否初始化
if ray.is_initialized() == False
ray.init()
# 显示关闭api
ray.shutdown()
ray客户端
Ray Client 是一个将 Python 脚本连接到远程Ray 集群的 API。实际上,它允许您像在本地计算机上运行 Ray 一样利用远程 Ray 集群。
使用ray客户端场景:需要脚本或交互式连接远程,适用于ray1.5+
ray.init(
"ray://1.2.3.4:10001",
namespace="my_namespace",# 设置会话的命名空间
runtime_env={"working_dir": "files/my_project", "pip": ["toolz", "requests"]},
# 设置会话的运行环境
)
Ray 连接集群的3种形式
为方便介绍,假设机器A,B,C
1、若B和C用于设置集群,A做开发,A的脚本连接集群,需使用(客户端连接)ray.init(“ray://<head_node_host>:10001”)
2、若B为集群的头节点,且在B上开发,B的脚本连接集群,需使用(非客户端连接)
ray.init(“localhost:”)
3、只有一台机器A,自动创建集群,需(非客户端连接)使用ray.init()