此工作由 Anaconda Inc. 和来自 Moore Foundation 的 Data Driven Discovery Initiative 提供支持。

很高兴宣布 Dask 0.15.2 版本发布。此版本包含稳定性增强和错误修复。本博文概述了自 6 月 11 日 0.15.0 版本发布以来的显著变化。

您可以使用 conda 安装 Dask

conda install dask

或从 PyPI 使用 pip 安装

pip install dask[complete] --upgrade

Conda 包在 defaults 和 conda-forge 两个通道上均可获取。

完整更新日志在此处可用

以下是一些值得注意的变化。

新的 dask-core 和 dask conda 包

在 conda 上,现在有三个相关的 Dask 包

  1. dask-core: 仅包含核心 Dask 包的包。除了标准库外,没有其他依赖项。主要用于依赖 Dask 特定部分的下游库。
  2. distributed: Dask 的分布式调度器,依赖于 Tornado、cloudpickle 和其他库。
  3. dask: 元包,包含 dask-core、distributed 以及所有相关库,如 NumPy、Pandas、Bokeh 等。供用户安装。

这种组织方式旨在允许下游库仅依赖它们所需的 Dask 部分,同时也让用户的默认行为是全包容的。

下游库可能希望将 conda 依赖项从 dask 更改为 dask-core。然后,他们需要根据其用户社区仔细包含必要的库(如 numpy 或 cloudpickle)。

改进的部署

由于在 Docker 或其他具有复杂网络规则的系统上部署增加,dask-worker 进程现在包含单独的 --contact-address--listen-address 关键字,可用于指定它们宣传的地址和它们监听的地址。当网络视图可能发生显著变化时,这尤其有用。

dask-worker scheduler-address:8786 \
            --contact-address 192.168.0.100:9000  # contact me at 192.168.0.100:9000
            --listen-address 172.142.0.100:9000  # I listen on this host

此外,其他服务(如 HTTP 和 Bokeh 服务器)现在会遵守由 --listen-address--host 关键字提供的主机,并且在指定网络外部将不可见。

避免内存、文件描述符和进程泄漏

在一些复杂情况下,Dask 会出现资源泄漏。其中许多问题现已得到清理。我们非常感谢所有能够提供非常详细的案例研究来展示这些问题的人,更感谢那些参与解决问题的人。

毫无疑问,这方面还有更多工作要做,我们期待未来的合作。

Array 和 DataFrame API

像往常一样,Dask array 和 dataframe 新增了一系列函数,完善了它们相对于 NumPy 和 Pandas 的 API。

请参阅完整 API 以供进一步参考

弃用

正式弃用 dask.distributed.Executor,用户应改用 dask.distributed.Client。此前这是一个别名。

移除 Bag.concat,用户应改用 Bag.flatten

移除 Bag.map 中的神奇元组解包,例如 bag.map(lambda x, y: x + y)。用户应手动解包。

Julia

来自 Invenia 的开发人员一直在构建与 Dask.distributed 调度器协同工作的 Julia worker 和 client。他们在提出确保跨语言支持所需的问题方面提供了帮助。

致谢

以下人员自 6 月 11 日 0.15.0 版本发布以来对 dask/dask 仓库做出了贡献

  • Bogdan
  • Elliott Sales de Andrade
  • Bruce Merry
  • Erik Welch
  • Fabian Keller
  • James Bourbeau
  • Jeff Reback
  • Jim Crist
  • John A Kirkham
  • Luke Canavan
  • Mark Dunne
  • Martin Durant
  • Matthew Rocklin
  • Olivier Grisel
  • Søren Fuglede Jørgensen
  • Stephan Hoyer
  • Tom Augspurger
  • Yu Feng

以下人员自 6 月 14 日 1.17.1 版本发布以来对 dask/distributed 仓库做出了贡献

  • Antoine Pitrou
  • Dan Brown
  • Elliott Sales de Andrade
  • Eric Davies
  • Erik Welch
  • Evan Welch
  • John A Kirkham
  • Jim Crist
  • James Bourbeau
  • Jeremiah Lowin
  • Julius Neuffer
  • Martin Durant
  • Matthew Rocklin
  • Paul Anton Letnes
  • Peter Waller
  • Sohaib Iftikhar
  • Tom Augspurger

此外,我们很高兴宣布 John Kirkham (@jakirkham) 已接受对 Dask 组织的提交权限,并成为核心贡献者。John 在 Dask 项目中一直很活跃,尤其在 Dask.array 方面非常活跃。


博客评论由 Disqus 提供支持