iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 并行加速技巧分享
  • 830
分享到

Python 并行加速技巧分享

2024-04-02 19:04:59 830人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1 前言2 使用joblib进行并行计算2.1 使用Parallel与delayed进行并行加速1 前言 我们在日常使用python进行各种数据计算处理任务时,若想要获得明显的计

1 前言

我们在日常使用python进行各种数据计算处理任务时,若想要获得明显的计算加速效果,最简单明了的方式就是想办法将默认运行在单个进程上的任务,扩展到使用多进程或多线程的方式执行。

而对于我们这些从事数据分析工作的人员而言,以最简单的方式实现等价的加速运算的效果尤为重要,从而避免将时间过多花费在编写程序上。

而今天我就来带大家学习如何利用joblib这个非常简单易用的库中的相关功能,来快速实现并行计算加速效果。

2 使用joblib进行并行计算

作为一个被广泛使用的第三方Python库(譬如scikit-learn项框架中就大量使用joblib进行众多机器学习算法的并行加速),我们可以使用pip install joblib对其进行安装,安装完成后,下面我们来学习一下joblib中有关并行运算的常用方法:

2.1 使用Parallel与delayed进行并行加速

joblib中实现并行计算只需要使用到其Parallel和delayed方法即可,使用起来非常简单方便

下面我们直接以一个小例子来演示:

joblib实现并行运算的思想是将一组通过循环产生的串行计算子任务,以多进程或多线程的方式进行调度,而我们针对自定义的运算任务需要做的仅仅是将它们封装为函数的形式即可,譬如:

import time
def task_demo1():
    time.sleep(1)
    return time.time()

接着只需要像下面的形式一样,为Parallel()设置相关参数后,衔接循环创建子任务的列表推导过程,其中利用delayed()包裹自定义任务函数,再衔接()传递任务函数所需的参数即可,其中n_jobs参数用于设置并行任务同时执行的worker数量,因此在这个例子中可以看到进度条是按照4个一组递增的,

可以看到最终时间开销也达到了并行加速效果:

其中可以根据计算任务以及机器CPU核心数具体情况为Parallel()调节参数,核心参数有:

  • backend:用于设置并行方式,其中多进程方式有'loky'(更稳定)和'multiprocessing'两种可选项,多线程有'threading'一种选项。默认为'loky'
  • n_jobs:用于设置并行任务同时执行的worker数量,当并行方式为多进程时,n_jobs最多可设置为机器CPU逻辑核心数量,超出亦等价于开启全部核心,你也可以设置为-1来快捷开启全部逻辑核心,若你不希望全部CPU资源均被并行任务占用,则可以设置更小的负数来保留适当的空闲核心,譬如设置为-2则开启全部核心-1个核心,设置为-3则开启全部核心-2个核心

譬如下面的例子,在我这台逻辑核心数为8的机器上,保留两个核心进行并行计算:

关于并行方式的选择上,由于Python中多线程时全局解释器的限制,如果你的任务是计算密集型,则推荐使用默认的多进程方式加速,如果你的任务是io密集型譬如文件读写、网络请求等,则多线程是更好的方式且可以将n_jobs设置的很大,举个简单的例子,可以看到,通过多线程并行,我们在5秒的时间里完成了1000次请求,远快于单线程17秒请求100次的成绩

我们可以根据自己实际任务的不同,好好利用joblib来加速你的日常工作。

到此这篇关于Python 并行加速技巧分享的文章就介绍到这了,更多相关Python 加速内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 并行加速技巧分享

本文链接: https://www.lsjlt.com/news/118139.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 并行加速技巧分享
    目录1 前言2 使用joblib进行并行计算2.1 使用Parallel与delayed进行并行加速1 前言 我们在日常使用Python进行各种数据计算处理任务时,若想要获得明显的计...
    99+
    2024-04-02
  • 分享Python 加速运行技巧
    目录1.避免全局变量2.避免2.1 避免模块和函数属性访问2.2 避免类内属性访问3.避免不必要的抽象4.避免数据复制4.1 避免无意义的数据复制4.2 交换值时不使用中间变量4.3...
    99+
    2024-04-02
  • Python并行加速的技巧有哪些
    本篇内容介绍了“Python并行加速的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 前言我们在日常使用Python进行各种数据...
    99+
    2023-06-30
  • Python中简单易用的并行加速技巧是什么
    本文小编为大家详细介绍“Python中简单易用的并行加速技巧是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中简单易用的并行加速技巧是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用job...
    99+
    2023-07-06
  • Pandas中Apply函数加速百倍的技巧分享
    目录前言实验对比01 Apply(Baseline)02 Swift加速03 向量化04 类别转化+向量化05 转化为values处理实验汇总前言 虽然目前dask,cudf等包的出...
    99+
    2024-04-02
  • Python中的Git关键字加载技巧分享。
    Python中的Git关键字加载技巧分享 Git是一个开源的分布式版本控制系统,它可以帮助开发者更好地管理代码,并且在协同开发中发挥重要作用。Python作为一种流行的编程语言,也有着广泛的应用。在Python中,如何更好地使用Git呢?本...
    99+
    2023-09-18
    git load 关键字
  • Python小技巧练习分享
    目录1.反转数字2.类的说明文档3.设置 Python 文件的编码4.旋转字符串5.实现控制台滚动条6.print 函数直接写入文件7.合并 2 个列表1.反转数字 问题场景: 把数...
    99+
    2024-04-02
  • 分享5个python提速技巧,速度瞬间提上来了
    目录1、跳过迭代对象的开头2、避免数据复制3、避免变量中间变量4、循环优化5、使用numba.jit1、跳过迭代对象的开头 string_from_file = """   // W...
    99+
    2024-04-02
  • 分享Python 的十个小技巧
      一. 列表、字典、集合、元组的使用  from random import randint, sample  # 列表解析  data = [randint(-10, 10) for _ in xrange(10)]  filter(l...
    99+
    2023-01-31
    小技巧 Python
  • 加快Python运行时速度的技巧有哪些
    本篇内容介绍了“加快Python运行时速度的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0.优化原理在深入探讨代码优化的细节之前...
    99+
    2023-06-16
  • 20个Python常用技巧分享
    目录1.字符串反转2.每个单词的第一个字母大写3. 字符串查找唯一元素4.重复打印字符串和列表n次5.列表生成6.变量交换7.字符串拆分为子字符串列表8.多个字符串组合为一...
    99+
    2023-05-14
    Python常用技巧分享 Python常用技巧 Python技巧
  • 加速Python数据分析的小技巧分别有哪些
    这期内容当中小编将会给大家带来有关加速Python数据分析的小技巧分别有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。有时候,一点小小的黑客行为可以节省时间,挽救生命。一个小小的快捷方式或附加组件有时...
    99+
    2023-06-16
  • 分享9个好用的Python技巧
    目录1.引言2.Trick 13.Trick 24.Trick35.Trick46.Trick57.Trick68.Trick79.Trick810.Trick911.总结1.引言 ...
    99+
    2024-04-02
  • 高并发技巧之Redis和本地缓存使用技巧分享
    目录三种缓存的使用场景Redis的使用场景和局限性LoadingCache的使用场景和局限性ReloadableCache的使用场景和局限性小结小技巧缓存使用的简单介绍LoadingCache的使用reloadableC...
    99+
    2024-04-02
  • 五个提升Python的执行效率的技巧分享
    目录1、合理使用标准或非标准库2、减少循环的使用3、注意重复代码运行4、减少全局变量使用5、使用合理的数据结构python作为使用最广泛的编程语言之一,有着无穷无尽的第三方非标准库的...
    99+
    2023-05-15
    Python提升执行效率技巧 Python提升执行效率 Python 技巧
  • 分享9个实用的Python技巧
    本篇内容介绍了“分享9个实用的Python技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!清理字符串输入对用户输入进行清理的问题几乎适用于...
    99+
    2023-06-16
  • Git代码合并技巧实战经验分享
    Git代码合并技巧实战经验分享Git是目前最受欢迎的版本控制系统之一,许多开发人员使用Git来管理他们的代码库。在多人协作的开发环境中,经常需要合并不同开发者的代码。然而,代码合并可能导致冲突和其他问题,特别是当大规模的代码更改涉及到多个分...
    99+
    2023-11-02
    技巧 git 代码合并
  • PyCharm运行快捷键实用技巧分享
    PyCharm 是一款功能强大的 Python 集成开发环境(IDE),提供了丰富的快捷键和功能,让开发者更高效地编写和调试代码。本文将分享一些 PyCharm 运行快捷键的实用技巧,...
    99+
    2024-02-22
    运行 pycharm 快捷键
  • 分享3个简单的Python代码高效运行技巧
    目录1. 引言2. 获取字典的值3. 循环中使用enumerate4. 使用f-strings来拼接和打印字符串5. 总结1. 引言 小伙伴们日常工作中都必不可少地使用Python实...
    99+
    2024-04-02
  • Git代码合并技巧:项目经验分享
    Git代码合并技巧:项目经验分享在软件开发过程中,代码合并是一个非常重要的环节。特别是在多人协作开发的项目中,不同开发者所创建的分支需要进行合并,以确保代码的完整性和一致性。本文将分享一些Git代码合并的技巧和经验,帮助开发者更加高效地进行...
    99+
    2023-11-03
    技巧分享 代码合并 Git合并
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作