Ray远程函数与远程Actor的深入解析
1. Ray远程函数特性
1.1 多值返回
Ray的远程函数和普通Python函数一样,能够返回多个值,而此前的示例仅返回单个值。
1.2 容错机制
在分布式环境中运行时,容错是一个重要考量。若执行任务的工作节点意外死亡(如进程崩溃或机器故障),Ray会在延迟后重新运行任务,直至任务成功或超过最大重试次数。
1.3 远程函数组合
1.3.1 流水线(Pipelining)
可以使用早期 ray.remote 产生的 ObjectRef 对象作为新远程函数调用的参数来构建流水线函数。Ray会自动获取 ObjectRef 对象,并将底层对象传递给函数,这种方式便于函数调用之间的协调,还能减少数据传输。
示例代码如下:
import random
import time
import ray
@ray.remote
def generate_number(s: int, limit: int, sl: float) -> int :
random.seed(s)
time.sleep(sl)
return random.randint(0, limit)
@ray.remote
def sum_values(v1: int, v2: int, v3: int) -> int :
return v1+v2+v3
# Get
超级会员免费看
订阅专栏 解锁全文
50

被折叠的 条评论
为什么被折叠?



