python并行运算库_6个用于并行处理的Python库

python并行运算库

Python一直以来都以便利性和程序员友好性着称,但是它并不是周围最快的编程语言。 它的某些速度限制是由于其默认实现cPython是单线程的。 也就是说,cPython一次不会使用多个硬件线程。

虽然您可以使用Python内置的threading模块来加快处理速度,但threading只能提供并发性 ,而不能提供并行性 。 这对于运行不依赖于CPU的多个任务非常有好处,但是对于加快每个都需要一个完整CPU的多个任务却无济于事。

[ 也在InfoWorld上:隔离期间最好的免费数据科学课程 ]

Python确实包含一种在多个CPU上运行Python工作负载的本地方法。 multiprocessing模块旋转Python解释器的多个副本,每个副本位于单独的内核上,并提供用于在多个内核之间拆分任务的原语。 但是有时候甚至multiprocessing还不够。

有时,这项工作要求不仅在多个内核之间而且还要在多个计算机之间分配工作。 这就是这六个Python库和框架的所在。下面的所有六个Python工具箱都允许您采用现有的Python应用程序,并将工作分散在多个内核,多个机器或两者之间。

射线

由加利福尼亚大学伯克利分校的一组研究人员开发的Ray是许多分布式机器学习库的基础。 但是Ray不仅限于机器学习任务,即使那是它的原始用例。 使用Ray,可以分解任何Python任务并将其分布在整个系统中。

Ray的语法极少,因此您无需大量修改现有应用程序即可对其进行并行化。 @ray.remote装饰器在Ray群集中的所有可用节点上分配该功能,并使用可选指定的参数来指定要使用的CPU或GPU的数量。 每个分布式函数的结果都作为Python对象返回,因此它们易于管理和存储,并且跨节点或节点内的复制量保持最小。 例如,在处理NumPy数组时,此最后一个功能非常有用。

Ray甚至包括其自己的内置群集管理器,该管理器可以根据需要在本地硬件或流行的云计算平台上自动启动节点。

相关视频:使用multiprocessing来加速Python

达斯克

从外部看, Dask看起来很像Ray。 它也是一个使用Python进行分布式并行计算的库,具有自己的任务调度系统,对Python数据框架(如NumP

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值