当前位置: 首页 > news >正文

Ray使用备注

Ray使用备注

框架介绍

  • Ray是一种python分布式任务调度框架
  • 其支持 无状态的任务并发执行,也支持 有状态的任务按照一定顺序执行
  • 其支持 分布式调度器,在一个节点上创建的任务先给本节点的局部调度器,并让本节点自己处理,当资源不够时,再将任务发给全局调度器供其他节点处理
  • 其支持 分布式对象存储,同一个节点上的使用同一个对象存储器,实现进程间内存共享
  • 其支持 单节点部署及多节点集群部署;

简单用法

import ray
import time# Start Ray.
ray.init()@ray.remote
def run_task():num = 1for item in range(1000):num = num * item**itemreturnif __name__ == '__main__':print('开始计时')start_time = time.time()result_ids = []# 并发100个任务for i in range(100):# 开始并行的任务,这些会立即返回futures并在后台执行s1 = time.time()x_id = run_task.remote()print("发送任务到ray框架耗时:", time.time() - s1, "s")result_ids.append(x_id)# 获取结果。这个结果直到第三个任务完成才能得到。只有get创建以后所有的任务才开始创建执行。ray.get(result_ids)print("总耗时", time.time() - start_time, "s")

单节点部署及执行方法

  • A服务器 启动ray master服务(并指定使用cpu核数): ray start --head --num-cpus=36
  • A服务器 执行python压测案例: python ray_use.py
  • A服务器 关闭ray master服务: ray stop

多节点部署及执行方法

  • A服务器 启动ray master服务: ray start --head --num-cpus=36 --disable-usage-stats
  • B服务器 启动ray salve服务(–address:指向master服务地址): ray start --num-cpus=2 --address=‘192.168.xxx.xxx:6379’
  • A服务器 执行python压测案例: python ray_use.py
  • B服务器 关闭ray salve服务: ray stop
  • A服务器 关闭ray master服务: ray stop

使用注意事项

  • ray框架本身在任务调度,异步执行,跨进程通信 等有所消耗,
  • 因此 当出现 集群部署和单节点部署 总体消耗时间相似,或使用ray比不使用总体耗时更长,
  • 主要是因为 被调度的任务本身消耗资源较少,执行时间较短导致的; 如 ray执行remote()方法进行异步调用耗时0.1ms,而 单个任务执行耗时也要0.1ms,则使用ray耗时就要0.2s,得不偿失;
  • 这时说明 ray框架不符合需求;
  • 或者 将多个耗时较短的任务拼接在一个大的任务中,从而突出ray框架分布式高并发的优势;

相关链接地址

  • ray官方文档
  • Ray分布式计算框架详解
http://www.lryc.cn/news/258231.html

相关文章:

  • 个人介绍以及毕业去向
  • 原创度检测,在线文章原创度检测
  • windows下安装git中文版客户端
  • 短视频怎么批量添加水印logo
  • 一文入门 UUID
  • kafka学习笔记--broker工作流程、重要参数
  • 多合一iPhone 解锁工具:iMyFone LockWiper iOS
  • 在设计和考虑建造室外雨水收集池时需要注意的因素
  • C_5练习题答案
  • 使用 Axios 进行网络请求的全面指南
  • 已解决java.lang.exceptionininitializererror异常的正确解决方法,亲测有效!!!
  • 深度学习 Day10——T10数据增强
  • ky10 x86 一键安装wvp gb28181 pro平台
  • FPGA时序分析与约束(0)——目录与传送门
  • Linux 驱动开发需要掌握哪些编程语言和技术?
  • Android studio生成二维码
  • python——第十六天
  • JWT介绍及演示
  • Android Studio新版UI介绍
  • 基于ssm应急资源管理系统论文
  • K8S学习指南(9)-k8s核心对象init pod
  • 以太坊:前世今生与未来
  • vue3若依框架,在页面中点击新增按钮跳转到新的页面,不是弹框,如何实现
  • 【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫
  • linux配置python环境
  • 【教程】app备案流程简单三部曲即可完成
  • C++使用vector创建二维数组并指定大小
  • Spring支持哪几种事务管理类型,Spring 的事务实现方式和实现原理是?
  • 书-二分查找找某个数字p155
  • 【NLP】RAG 应用中的调优策略