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.mzph.cn/news/218965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 自动化之修理PDF文件(二)

PDF文件_合并与拆分PDF文档Pro版本 文章目录 PDF文件_合并与拆分PDF文档Pro版本前言一、要做成什么样子二、主要用到的函数三、基本思路1.引入库2.创建用户输入模块3.确定主框架 四、文档合并代码模块1.用户输入和函数调用2.引导用户输入文档信息3.合并文档内容4.命名新文档生成…

CMake 构建指南:如何提高 C-C++ 项目的可维护性

如果您是一位 C/C 开发人员,那么您一定知道在编写和维护大型项目时所面临的挑战。这些项目通常包含大量的源代码、库和依赖项,需要耗费大量的时间和精力才能构建和维护。在这种情况下,使用自动化工具可以大大减轻您的负担,提高项目…

传输层协议:TCP协议和UDP协议

文章目录 传输层协议:TCP协议和UDP协议一、TCP协议介绍(面向连接,稳定,慢)1、TCP特性2、TCP报文格式3、TCP三次握手4、TCP四次挥手5、常用的TCP端口号及其功能 二、UDP协议介绍(无连接,不稳定&a…

【ET8】4.ET8入门-ECS解析

ECS ECS组件生命周期 参考连接 ⼀种类ECS设计范式的介绍 3.3一切皆实体 4.1组件式设计 【ET框架课程】04-Entity&Component&System_哔哩哔哩_bilibili 【ET框架课程】05-ECS组件生命周期_哔哩哔哩_bilibili

深度学习学习顺序梳理

https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完,时间较久了,后续可以重新听一遍,整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…

GitHub入门命令介绍

GitHub是当今最受欢迎的代码托管平台之一,它提供了强大的版本控制和协作功能。 对于初学者来说,熟悉GitHub的基本命令非常重要。下面介绍一些常用的GitHub命令。 一、安装Git 1. Windows系统:在Windows上使用GitHub之前,您需要先…

FS基础概念

verto webrtc的信令 1000-1019 默认20个用户 密码1234 健全用户名和用户用户名一样都是1000 cd FS make samples 执行后会在/usr/local/下建立freeswitch目录,并且只会放入conf htdocs和这两个目录下的所有文档,并且不会编译出freeswitch和fs_cli。 /usr/local/freeswitch/b…

选择流量回溯分析系统的关键因素

在网络安全和性能优化的背景下,选择适用的流量回溯分析系统变得至关重要。这些系统帮助组织深入了解网络流量,追踪异常行为,并提供关键的信息以加强网络安全。本文将介绍选择流量回溯分析系统时需要考虑的关键因素,以帮助组织做出…

微信小程序、uniapp仿网易云UImusic播放器(附源码)

一、uni-app框架介绍 1.什么是 uni-app uni-app 是一个使用vue的语法 微信小程序的标签和API的跨平台前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台,几乎覆盖所有流量端。 uni-app 具有跨端数量更多、性能体验…

Python去除字符串中空格(删除指定字符)的3种方法

str 提供了如下常用的方法来删除空白: strip():删除字符串前后的空白。 lstrip():删除字符串前面(左边)的空白。 rstrip():删除字符串后面(右边)的空白。 需要说明的是&#xff…

【数据结构】贪心算法

一.贪心算法的定义 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。 贪心算法的结果是最优解的最好近似。 优点:简单,高效。 缺点&…

关于 python 的 if __name__ == ‘__main__‘ 你知道多少?

在诸多情况下,当我们在编写一个Python测试脚本或是Java转型而来的程序员们,往往偏爱撰写 if name __main__ 的语句。然而,对于 if name __main__,我们究竟了解多少呢? 首先,这是一条判断语句&#xff0c…

百岁时代即将来临,原知因成为消费新潮流

什么叫长寿时代?泰康保险首席执行官陈东升指出:长寿时代,就是百岁人生即将来临,人人带病长期生存。而在这个时代,人类最大的变化在于“生命尺度的改变”,比如过去20岁是年轻人,40岁中年人,60岁…

哈工大《软件工程专业导论》复习指南

哈工大软件工程专业导论复习指南 文章目录 哈工大软件工程专业导论复习指南前言引言——软件工程专业导论课程引言第一章 软件工程专业初步认知第二章 软件体系结构与生命周期第三章 软件需求工程第四章 软件设计与实现第五章 软件质量与软件工程管理第六章 软件工程教育与职业…

经典综述|88.1分力作!土壤塑料际

柏林-勃兰登堡高级生物多样性研究所在《Nature reviews microbiology》期刊上(IF88.1)发表的“The soil plastisphere”研究论文中,综述了塑料对土壤的潜在影响。对土壤塑料际特性和微生物群落以及这些群落影响过程的阐明仍处于早期阶段,但进展的步伐很快…

charCodeAt() 方法

charCodeAt() 是 JavaScript 中用于获取字符串指定位置字符的 Unicode 编码的方法 语法如下: str.charCodeAt(index) str:要获取字符的字符串。index:要获取的字符在字符串中的索引。返回值是一个表示给定索引处字符 Unicode 编码的整数。…

【数据库】@Transactional用法详解

先看代码,你觉得运行结果是什么? public class TestService {Autowiredprivate TestService service;Transactionalpublic void test31() {// 正常代码InfOrdersmesIn in InfOrdersmesIn.builder().zbguid(SnowflakeIdWorker.getSnowflakeId()).zernam…

提升测试工具开发的思考

本文针对测试部效率提升测试工具开发、管理、维护暴露出来的问题的一些思考以及一些个人改进观点。 写在前面 本文提到的效率提升测试工具不是指的部门中固有的自动化测试工具,这里提到的测试工具统一指测试人员在工作之余自主开发用于期望替代重复、繁琐、耗时的手…

数据库_mongoDB

1 介绍 MongoDB 是一种 NoSQL 数据库,它将每个数据存储为一个文档,这里的文档类似于 JSON/BSON 对象,具体数据结构由键值(key/value)对组成。字段值可以包含其他文档,数组及文档数组。其数据结构非常松散&…

Redis 数据结构:高频面试题及解析

概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性&…