【python】Ray集群搭建

2023-10-27

准备条件(基于linux环境)

  • 这里部署2个节点的集群,准备2个linux环境,ip为
192.168.2.165 worker节点(内存限制,本地安装只有一个CPU)
192.168.2.220 head节点(内存限制,本地安装只有一个CPU)
  • 安装 python3
    yum install python3

  • Ray学习文档地址:
    https://ray.readthedocs.io/en/latest/index.html

  • github地址:
    https://github.com/ray-project/ray

Ray简介

Ray是用于构建和运行分布式应用程序的快速,简单的框架。

Ray与以下库打包在一起,以加快机器学习的工作量:

Tune:可伸缩超参数调整
RLlib:可扩展的强化学习
Distributed Training :分布式培训

Ray的优势

  • 更省时,高效

普通的执行方式是这样的:
在这里插入图片描述

Ray:
在这里插入图片描述

Ray工作原理

在这里插入图片描述
该图片引用来自参考文献1:

安装Ray(在所有节点上安装)

pip3 install ray

在这里插入图片描述

部署Ray集群

1.部署head节点

手动在head节点上启动:

firewall-cmd --add-port=6379/tcp
ray start --head --redis-port=6379


在这个节点上启动Ray。您可以通过调用向集群添加其他节点:
(Started Ray on this node. You can add additional nodes to the cluster by calling)

ray start --redis-address 192.168.2.220:6379

您可以通过运行Python将一个驱动程序连接到集群
(from the node you wish to add. You can connect a driver to the cluster from Python by running

import ray
ray.init(redis_address="192.168.2.220:6379")

如果从不同的机器连接有问题,请检查防火墙的配置是否正确。如果希望终止已启动的进程,请运行
(If you have trouble connecting from a different machine, check that your firewall is configured properly. If you wish to terminate the processes that have been started, run

ray stop

2.部署worker节点

注意:这里的ip 192.168.2.220 是步骤1中head节点的ip

firewall-cmd --add-port=6379/tcp
ray start --redis-address 192.168.2.220:6379

在这里插入图片描述

日志存放目录:
/tmp/ray

例子-python Ray集群

# -*- coding: utf-8 -*-
import time
import ray
ray.init(redis_address="192.168.2.220:6379")

def  f1():
    time.sleep(1)

@ray.remote
def f2():
    time.sleep(1)

#以下需要十秒。
time1=time.time()
[ f1() for _ in range(50)]
print(time.time()-time1)

#以下需要一秒(假设系统至少有10个CPU)。
time2=time.time()
ray.get([ f2.remote() for _ in range(50)])
print(time.time()-time2)

参考文献

https://blog.csdn.net/luanpeng825485697/article/details/88242020

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python】Ray集群搭建 的相关文章

  • 【Python】近似熵,样本熵,模糊熵计算高效版

    文章目录 前言 整体思路 1 近似熵 Approximate Entropy ApEn 1 1 理论基础 1 2 python第三方库实现 1 3 基于多线程numpy矩阵运算实现 2 样本熵 Sample Entropy SampEn 2
  • Python-文件操作

    Python文件操作 1 打开文件 使用open 函数打开文件 指定文件名和模式 常用模式有 r 读取 默认 w 写入 会先截断文件 a 追加 b 二进制模式 t 文本模式 默认 updating reading and writing f
  • 【python 6】Numpy

    文章目录 一 创建ndarry 1 使用 np array 由 python list 创建 2 使用np的常规函数创建 二 ndarry 的属性 三 ndarry 的基本操作 四 ndarry 的矩阵操作 Numpy 是python的数值
  • python如何读取文件夹下的子文件夹

    import os 创建文件夹 def mkdir path if os path exists path False os mkdir path else pass 根目录 root path C Users man wang Deskt
  • LOESS局部加权

    参考资料 1 Matlab中fLOESS函数 https ww2 mathworks cn matlabcentral fileexchange 55407 loess regression smoothing s tid srchtitl
  • pythonz字符串去重并排序

    项目场景 python练习题 问题描述 输入一个非空字符串 去除重复的字符后 从小到大排序输出为一个新字符串 原因分析 去重可以运用python中set数据类型的特性 然后将去重的set转为列表 再调用sort 函数进行排序即可 解决方案
  • python 如何将代码中的输入保存到txt里边

    一 在 print 前建立一个txt python3 f open print txt w print this is a txt file f f close python2 f open print txt w print gt gt
  • Python之整型

    1 python中一切都是对象 因此python中其实根本不存在int float这些类型 2 int其实是一个python对象 3 整数类型 int 在python中实际是上长整型 理论是可以存储无限大小的整型数 正数负数和0 一 int
  • Python数据分析之Excel

    openpyxl库 1 openpyxl概述 2 Excel写入 2 1 新建 2 2 添加数据 2 3 单元格格式 3 Excel读取 4 openpyxl操作Excel之CRUD 4 1 查 4 2 改 4 3 删 1 openpyxl
  • sentinelsat包介绍

    这次主要介绍sentinelsat包 包括查询条件和相关的API等 主要记录自己学习过程 首先我们需要知道欧空局ESA的数据 因为考虑数据存储等问题 会将sentinel数据从在线存档中删除 对于长期存档的数据 会出现offline情况 在
  • Python处理大数据,如何提高处理速度

    Python处理大数据 如何提高处理速度 一 利用大数据分析工具 Dask https dask org Dask简介 Dask支持Pandas的DataFrame和NumpyArray的数据结构 并且既可在本地计算机上运行 也可以扩展到在
  • python 读写csv文件(创建,追加,覆盖)

    总述 这篇博客讲述python怎样创建 读写 追加csv文件 创建 利用csv包中的writer函数 如果文件不存在 会自动创建 需要注意的是 文件后缀一定要是 csv 这样才会创建csv文件 这里创建好文件 将csv文件的头信息写进了文件
  • python 批量读取txt文件

    1 python 批量读取txt文件 不读 注释的部分 并将数据保存为dataframe格式 代码 import re import glob import pandas as pd path data txt 指定txt文件所在文件夹路径
  • python + appium遇到的版本不匹配问题selenium.common.exceptions.WebDriverException: Message: Parameters were inc

    问题 selenium common exceptions WebDriverException Message Parameters were incorrect We wanted required desiredCapabilitie
  • Python协程介绍【赠书活动|第五期《Python编程入门与实战》】

    文章目录 一 相关概念 1 协程 2 子程序 3 区别 4 协程的优势 二 示例 赠书活动 一 相关概念 1 协程 协程 又称微线程 纤程 英文名Coroutine 协程的概念很早就提出来了 但直到最近几年才在某些语言 如Lua 中得到广泛
  • python数据清洗 —— re.split()划分字符串

    需求 对于一行字符串 route views6 routeviews org 141694 2a0c b641 24f fffe 7 184891 CN apnic OTAKUJAPAN AS Otaku Limited CN 要将其划分成
  • Python 实现简单的自定义异常类型

    usr bin env python import os socket errno types tempfile class NetworkError IOError pass class FileError IOError pass de
  • python3(二)Numpy

    这两个库都是基于C语言的 所以这两个库的计算速度相比python的list或dict来说很快 pandas又是基于numpy的库 相当于numpy的升级版本 并且用到了矩阵的计算 计算速度相比利用单个数据或字典 列表来说 快很多 1 基本
  • 华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

    文章目录 Part I Introduction Chap I 云耀云服务器 L 实例简介 Chap II 参与活动步骤 Part II 配置 Chap I 初步配置 Chap II 配置安全组 Part III 简单使用 Chap I V
  • seaborn分类数据的绘制

    转载 seaborn分类数据的绘制https zhuanlan zhihu com p 27683042 总结很全的资料

随机推荐

  • 猿人学js混淆-源码乱码解法总结

    猿人学js混淆 源码乱码解法总结 网址 解法 心得 网址 js混淆 源码乱码网址 解法 我是在360浏览器下打开网址 进入审查元素 打开第2页 发现请求网址为 http match yuanrenxue com api match 1 pa
  • 阿里云Redis开发规范

    开发十年 就只剩下这套Java开发体系了 gt gt gt 一 键值设计 1 key名设计 1 建议 可读性和可管理性 以业务名 或数据库名 为前缀 防止key冲突 用冒号分隔 比如业务名 表名 id ugc video 1 2 建议 简洁
  • 十. Kubernetes 核心配置文件与kubelet命令

    目录 一 核心组件与对应的配置文件 二 kubelet 配置文件 常用命令 一 核心组件与对应的配置文件 在使用k8s时 内部有多个核心组件例如用来接收请求的apiServer 解析请求存储etcd的ControllerManage 用来存
  • C++模板类的使用以及运算符重载的实现

    一 类模板及运算符重载的实现 如同函数模板一样 使用类模板使用户可以为类定义一种模式 使得类中的某些数据成员 某些成员函数的参数 某些成员函数的返回值能取任意类型 类模板是对一批仅仅成员数据类型不同的类的抽象 程序员只要为这一批类所组成的整
  • 简明区块链原理

    链客 专为开发者而生 有问必答 此文章来自区块链技术社区 未经允许拒绝转载 区块链 应有特质 使用了具有 哈希链 下文有解释 形式的数据结构保存基础数据 有多个结点参与系统运行 分布式 通过一定的协议或算法对于基础数据的一致性达成共识 共识
  • R语言优雅的修改列名称

    说实话 我一直没有搞懂R语言的dpyr包的rename是怎么用的 很奇怪 我一直用不好这个函数 或者说 我就不太喜欢他这个更改表格列名称的方式 但是我今天在stackoverflow上看到了一个人是这么用的 非常的amazing 介绍 在修
  • JAVA中Object类的toString()方法

    toString public String toString 返回该对象的字符串表示 通常 toString 方法会返回一个 以文本方式表示 此对象的字符串 结果应是一个简明但易于读懂的信息表达式 建议所有子类都重写此方法 Object
  • vxe-table 固定列滚动完成后没有对齐

    vxe table 固定列滚动完成后没有对齐 默认情况下 虚拟滚动是自动开启的 当行数超过设置的 scroll y gt 时 就会自动触发虚拟渲染 即只渲染可视区内的数据 所以要想将性能达到最优 应该确保可视区内的显示条数尽可能减少 建议在
  • C/C++临时变量详解

    临时变量 临时变量是一种只在调用期间有效 且具有常性的变量 Date d1 2022 报错 因为该语句会先将2022赋值给临时变量 而临时变量是const的 无法直接赋值给d1 因为这是权限的放大 不合法 这段代码就是正确的 const D
  • Java中Robot类详解

    概述 Java中Robot类位于java awt Robot 该类用于为测试自动化 自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件 Robot类的主要目的是便于Java平台实现自动测试 Robot可以模拟鼠标和键盘的输
  • Confluence 6 缓存性能优化

    Confluence 的运行状态与缓存状态有这密切的关系 针对 Confluence 的管理员来说 尤其是大型站点的 Confluence 管理员 设置好缓存尤其显得关键 希望修改缓存的大小 进入 gt 基本配置 General Confi
  • 并行求和算法实现

    题目描述 有 N N N 个处理器 现对 N N N 个数求和 要求每个处理器中都保持全和 有两个算法可以实现 蝶式求和算法 重复计算元素的求和 共需要 l
  • cefsharp 在高DPI下闪烁的问题

    今天有客户朋友说程序在他的surface下界面很闪烁 搜索了相关的资料 初步判定是DPI引起的问题 但也有可能是cefsharp 51版本在WIN10上面没有禁用GPU加速 苦于没有环境测试 所以抱着尝试的心态让他做了如下设置 结果程序正常
  • js数组或对象除去重复元素的四种方法

    1 利用对象的属性名来存储不重复的元素或者说利用对象的属性名来筛选重复的元素 let arr 0 2 2 3 4 5 3 3 5 4 l a p l p a let obj let arrs let arrLength arr length
  • STM32 电机教程 14 - BLDC 电机速度闭环控制

    前言 无刷直流 Brushless Direct Current BLDC 电机是一种正快速普及的电机类型 它可在家用电器 汽车 航空航天 消费品 医疗 工业自动化设备和仪器等行业中使用 正如名称指出的那样 BLDC 电机不用电刷来换向 而
  • Flutter 热更新及动态UI生成

    本系列相关文章 Flutter 热更新及动态UI生成 Lua 15分钟快速上手 上 Lua 15分钟快速上手 下 Lua与C语言的互相调用 LuaDardo中Dart与Lua的相互调用 问题 由于Dart语言在Flutter上关闭了反射 且
  • 用Python爬取某东商品信息并可视化

    有态度地学习 张凡幸 人工智能初阶小白 初学Python 喜欢数据分析 爬虫相关内容 微信公众号 学习随笔 ID walker398 对于Ajax加载的网页已经分析了好几回 这回来说说利用selenium自动化获取网页信息 通常对于异步加载
  • SQL语句高级查询一、二(刚入门 的也能看懂)

    高级查询 一 一 where条件表达式 SELECT column1 column2 FROM tablename WHERE condition name 张三 name like 三 新建一张表进行测试 1 查找语文成绩大于80分的学生
  • vc++6.0 调试问题【no matching symbolic information found.】

    最近重新整理C的基础知识 于是便用起了vc 6 0调试代码 结果就遇到了如标题所属问题 之前很少用vc 6 0 所以对我来说 我算个新手吧 相信很多新手都遇到跟我也遇到过同样的问题 下面我将我分 1 测试代码 2 直接运行 3 调试 4 贴
  • 【python】Ray集群搭建

    目录 准备条件 基于linux环境 Ray简介 Ray的优势 Ray工作原理 安装Ray 在所有节点上安装 部署Ray集群 1 部署head节点 2 部署worker节点 例子 python Ray集群 参考文献 准备条件 基于linux环