iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中简单易用的并行加速技巧是什么
  • 930
分享到

Python中简单易用的并行加速技巧是什么

2023-07-06 02:07:03 930人浏览 泡泡鱼

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

摘要

本文小编为大家详细介绍“python中简单易用的并行加速技巧是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中简单易用的并行加速技巧是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用job

本文小编为大家详细介绍“python中简单易用的并行加速技巧是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中简单易用的并行加速技巧是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

使用joblib进行并行计算

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

使用Parallel与delayed进行并行加速

joblib中实现并行计算只需要使用到其Parallel和delayed方法即可,使用起来非常简单方便,下面我们直接以一个小例子来演示:

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

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

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

Python中简单易用的并行加速技巧是什么

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

  • backend:用于设置并行方式,其中多进程方式有'loky'(更稳定)和'multiprocessing'两种可选项,多线程有'threading'一种选项。默认为'loky'。

  • n_jobs:用于设置并行任务同时执行的worker数量,当并行方式为多进程时,n_jobs最多可设置为机器CPU逻辑核心数量,超出亦等价于开启全部核心,你也可以设置为-1来快捷开启全部逻辑核心,若你不希望全部CPU资源均被并行任务占用,则可以设置更小的负数来保留适当的空闲核心,譬如设置为-2则开启全部核心-1个核心,设置为-3则开启全部核心-2个核心。

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

Python中简单易用的并行加速技巧是什么

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

Python中简单易用的并行加速技巧是什么

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

读到这里,这篇“Python中简单易用的并行加速技巧是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: Python中简单易用的并行加速技巧是什么

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

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

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

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

下载Word文档
猜你喜欢
  • Python中简单易用的并行加速技巧是什么
    本文小编为大家详细介绍“Python中简单易用的并行加速技巧是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中简单易用的并行加速技巧是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用job...
    99+
    2023-07-06
  • 使用Python加速数据分析的10个简单技巧分别是什么
    这期内容当中小编将会给大家带来有关使用Python加速数据分析的10个简单技巧分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。提示和技巧,尤其是在编程领域,可能是非常有用的。有时,一个小技巧可以节...
    99+
    2023-06-16
  • CSS网页布局中简单实用八个技巧分别是什么
    今天就跟大家聊聊有关CSS网页布局中简单实用八个技巧分别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。和大家重点学习一下CSS网页布局非常有用...
    99+
    2022-10-19
  • Linux命令行中使用history相关的技巧是什么
    这篇文章给大家介绍Linux命令行中使用history相关的技巧是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当你频繁使用Linux命令行时,有效地使用历史记录可以大大提高生产力。当在命令行输入history时,...
    99+
    2023-06-28
  • Python中实用却不常见的小技巧是什么呢
    这期内容当中小编将会给大家带来有关Python中实用却不常见的小技巧是什么呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。“Talk is cheap show me the code”,这是编程人条,说...
    99+
    2023-06-02
  • Python中的日志处理和调试技巧在实际开发中的应用场景和注意事项是什么?
    Python中的日志处理和调试技巧在实际开发中的应用场景和注意事项在软件开发中,确保代码的正确性和可靠性是至关重要的。为了实现这一目标,日志处理和调试技巧是不可或缺的工具之一。Python作为一门广泛应用于各个领域的编程语言,提供了许多方便...
    99+
    2023-10-27
    应用场景 日志处理 调试技巧 注意事项
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作