Ray 远程函数与远程参与者的深入解析
1. Ray 远程函数特性
1.1 多值返回与容错性
Ray 远程函数和常规 Python 函数一样,不仅可以返回单个值,还能返回多个值。在分布式环境中运行时,容错性是一个重要考量。若执行任务的工作进程意外死亡(如进程崩溃或机器故障),Ray 会在延迟后重新运行任务,直至任务成功或超过最大重试次数。
1.2 远程函数组合
Ray 远程函数可通过组合变得更强大,常见的组合方法有流水线(pipelining)和嵌套并行(nested parallelism)。
- 流水线 :可以使用早期 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 :
超级会员免费看
订阅专栏 解锁全文
1259

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



