原标题:使用 Dask 在 Python 中进行并行计算 | Linux 中国

Dask 库可以将 Python 计算扩展到多个核心甚至是多台机器。

-- Moshe Zadka

关于 Python 性能的一个常见抱怨是全局解释器锁[1](GIL)。由于 GIL,同一时刻只能有一个线程执行 Python 字节码。因此,即使在现代的多核机器上,使用线程也不会加速计算。

但当你需要并行化到多核时,你不需要放弃使用 Python:Dask[2]库可以将计算扩展到多个内核甚至多个机器。某些设置可以在数千台机器上配置 Dask,每台机器都有多个内核。虽然存在扩展规模的限制,但一般达不到。

虽然 Dask 有许多内置的数组操作,但举一个非内置的例子,我们可以计算偏度[3]:

importnumpy

importdask

fromdaskimportarrayasdarray

arr=dask.from_array(numpy.array(my_data),chunks=(1000,))

mean=darray.mean()

stddev=darray.std(arr)

unnormalized_moment=darry.mean(arr*arr*arr)

##Seeformulainwikipedia:

skewness=((unnormalized_moment-(3*mean*stddev**2)-mean**3)/

stddev**3)

请注意,每个操作将根据需要使用尽可能多的内核。这将在所有核心上并行化执行,即使在计算数十亿个元素时也是如此。

当然,并不是我们所有的操作都可由这个库并行化,有时我们需要自己实现并行性。

为此,Dask 有一个“延迟”功能:

importdask

defis_palindrome(s):

returns==s[::-1]

palindromes=[dask.delayed(is_palindrome)(s)forsinstring_list]

total=dask.delayed(sum)(palindromes)

result=total.compute()

这将计算字符串是否是回文并返回回文的数量。

虽然 Dask 是为数据科学家创建的,但它绝不仅限于数据科学。每当我们需要在 Python 中并行化任务时,我们可以使用 Dask —— 无论有没有 GIL。

python dask_使用 Dask 在 Python 中进行并行计算 | Linux 中国相关推荐

  1. python dask_使用 Dask 在 Python 中进行并行计算

    Dask 库可以将 Python 计算扩展到多个核心甚至是多台机器. 关于 Python 性能的一个常见抱怨是全局解释器锁(GIL).由于 GIL,同一时刻只能有一个线程执行 Python 字节码.因 ...

  2. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...

    导读:这个 Python 模块可以以多种格式收集网站使用日志并输出良好结构化数据以进行分析. 本文字数:3262,阅读时长大约:4分钟https://linux.cn/article-12512-1. ...

  3. linux nuc 吗 支持_在你的树莓派家庭实验室中使用 Cloudinit | Linux 中国

    本文字数:2513,阅读时长大约:4分钟导读:了解了云行业的标准,该向你的家庭实验室自动添加新设备和用户了.https://linux.cn/article-12371-1.html作者:Chris ...

  4. 使用变量_在 Linux 中使用变量 | Linux 中国

    让我们来看看所有这些 $ 值可以告诉你什么.-- Sandra Henry-stocker 变量通常看起来像 $var 这样,但它们也有 $1.$*.$? 和 $$ 这种形式.让我们来看看所有这些 $ ...

  5. 5显示日志_如何在 Linux 中管理日志 | Linux 中国

    Linux 系统上的日志文件包含了很多信息--比你有时间查看的还要多.以下是一些建议,告诉你如何正确的使用它们--而不是淹没在其中.-- Sandra Henry-stocker Linux 系统上的 ...

  6. linux ba 模拟,在你的 Python 游戏中模拟引力 | Linux 中国

    学习如何使用 Python 的 Pygame 模块编程电脑游戏,并开始操作引力. -- Seth Kenlon 真实的世界充满了运动和生活.物理学使得真实的生活如此忙碌和动态.物理学是物质在空间中运动 ...

  7. html video显示进度条_使用 tqdm 在 Python 应用中显示进度 | Linux 中国

    如果你的程序需要一段时间才能显示结果,可通过显示它的进度来避免让用户感到沮丧. 来源:https://linux.cn/article-12990-1.html 作者:Moshe Zadka 译者:g ...

  8. 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国

    使用循环和查找命令批量自动对多个文件进行一系列的操作.-- Seth Kenlon(作者) 人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能.如果你希望批量的对文件执行一些指令,构造一个可 ...

  9. 中科大实验室linux,中国科学技术大学信息网络实验室

    实验室简介 中国科学技术大学信息网络实验室(Lab. of Information Network,InfoNet)为无线网络通信安徽省重点实验室的成员单位之一,由李津生教授创建于1988年,原名IS ...

最新文章

  1. 零基础如何学习软件测试
  2. DeepMind Nando(原牛津大学教授)强化学习最新进展,含图文、公式和代码,附102页PPT下载...
  3. 金山网盾3.5.3版本预升级公告
  4. Caffe的Solver参数设置
  5. Facebook高管解读财报 加大对视频业务的投资
  6. 条件随机场(CRF)相对于HMM,MEMM的优势
  7. android clipChildren的使用
  8. php %3f,PHP
  9. 如何结合SharePoint Designer 2010 与Visio 2010 创建工作流?
  10. ORA-12519: TNS:no appropriate service handler found 解决
  11. ubuntukylin14安装ns-allinone-2.35教程(虚拟机ubuntu同理)
  12. Codeforce 189B——Counting Rhombi
  13. 高并发架构系列:如何解决Redis雪崩、穿透、并发等5大难题
  14. Mac基础知识:在mac上怎么使用程序坞
  15. JSP 新手入门理解教程(附带案例)
  16. 开源开放 | OpenKG发布第二批并更新近十个新冠知识图谱开放数据集
  17. python openpyxl冻结首行单元格
  18. c 语言编程字谜,字谜游戏(a)C语言
  19. excel打不开_卸载WPS以后为什么无法打开一个新建的Excel工作簿了
  20. 如何设置vscode默认谷歌浏览器打开

热门文章

  1. bin hex 文件互相转换
  2. html怎么做隐藏字符,隐藏文字的方法有很多
  3. python绩点计算_Python爬虫实战(3):计算大学本学期绩点
  4. XML(快速学会编写、阅读XML文档)
  5. 断言是什么,怎么使用
  6. 从入门到精通:Java编程基础入门教程
  7. 给国企定制小程序,这家「云服务商」 1 个月搞定
  8. statistics
  9. nio学习之Selector选择器
  10. python官网无法访问移动网络_关于 win10 创建WiFi热点 问题(无法启动承载网络 , 我们无法设置移动热点,因为你的电脑未建立以太网,wifi或手机网络数据连接 )...