机器学习框架Ray -- 1.2 Ray Core简介

关键概念

概述Ray的关键概念。

这些原语一起工作,使得Ray能够灵活地支持广泛的分布式应用程序。

Tasks 任务

Ray允许在不同的Python工作进程上异步执行任意函数。这些异步的Ray函数被称为“任务”。Ray允许任务根据CPU、GPU和自定义资源来指定它们的资源需求。集群调度程序使用这些资源请求来将任务分布到集群上进行并行执行。

Actors 

Actor将Ray API从函数(任务)扩展到类。Actor本质上是一个有状态的工作进程(或服务)。当实例化一个新的Actor时,会创建一个新的工作进程,并在该特定工作进程上安排Actor的方法,可以访问和修改该工作进程的状态。与任务一样,Actor支持CPU、GPU和自定义资源需求。

Objects 对象

在Ray中,任务和Actor会创建和计算对象。我们将这些对象称为远程对象,因为它们可以存储在Ray集群中的任何位置,并使用对象引用来引用它们。远程对象被缓存在Ray的分布式共享内存对象存储中,每个节点在集群中都有一个对象存储。在集群设置中,远程对象可以存在于一个或多个节点上,与持有对象引用的人无关。

Placement Groups 放置组

放置组允许用户在多个节点上原子地保留一组资源(即,带有gang scheduling)。它们可以用于将Ray任务和Actor尽可能紧密地打包在一起以实现局部性(PACK),或将它们分散开来(SPREAD)。放置组通常用于gang调度Actor,但也支持任务。

Environment Dependencies 环境依赖

当Ray在远程机器上执行任务和Actor时,它们的环境依赖(例如Python包、本地文件、环境变量)必须可用于运行代码。为了解决这个问题,您可以(1)使用Ray集群启动器预先准备集群上的依赖项,或者(2)使用Ray的运行时环境在运行时安装它们。

猜你喜欢

转载自blog.csdn.net/wenquantongxin/article/details/129980850