IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python使用ray框架改进原有代码,实现多进程与分布式 -> 正文阅读

[Python知识库]python使用ray框架改进原有代码,实现多进程与分布式

安装依赖:pip install -i https://mirrors.aliyun.com/pypi/simple/ 'ray[default]'

ray框架可以在几乎不改变现有代码的基础上实现分布式与并行计算!!改变的只有传值的方式,与每个函数加上装饰器即可

对于常规的循环任务

def exponentiation_test(a, b):
    import time
    time.sleep(1) # 这里是为了看是否是真正的多进程,卡一下时间
    value = a ** b ** 3
    return a, b


if __name__ == '__main__':
    for value in range(100):
        value += 3
        print(exponentiation_test(value, value // 2))

使用多进程改写

这是针对上面的for循环改写的多进程执行for循环的操作,非常简单

import ray

ray.init(num_cpus=3) # 步骤一:初始化


# import psutil
# ray.init(num_cpus=psutil.cpu_count(logical=False)) # 使用全部的CPU

@ray.remote # 步骤二:多进程的函数添加@
def exponentiation_test(a, b):
    import time
    time.sleep(1)
    value = a ** b ** 3
    print(a, b)
    return a, b


if __name__ == '__main__':
    remote_id_list = [] # 步骤三:使用一个列表保存每个任务的id
    for value in range(100):
        value += 3
        exp_id = exponentiation_test.remote(value, value // 2) # 这里就开始自动调度多进程了
        remote_id_list.append(exp_id) # 把任务列表添加到列表中
    print("wakakakakak....")  # 步骤四:当执行这一行代码的时候,@ray.remote的代码仍在异步执行,并且返回一个任务id,除非使用ray.get(任务id)才会使程序等待直到这个任务id执行完成
    z = ray.get(remote_id_list[-1])  # 程序运行到get时会等待这个任务id执行完成
    print(z)

参考文章

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:06:03  更:2021-09-06 11:06:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:37:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码