我很高兴宣布 Dask 1.1.0 版本发布。这是一个包含 bug 修复和新功能的主要版本。上一个版本是 1.0.0,发布于 2018-11-29。这篇博文概述了自上次发布以来值得关注的变化。

你可以使用 conda 安装 Dask

conda install dask

或者从 PyPI 使用 pip 安装

pip install dask[complete] --upgrade

完整的更新日志可在此处查看

值得关注的变化

在过去几个月里,我们做了很多工作,我们鼓励大家仔细阅读更新日志,了解开发人员正在进行的各种增量变化。

此版本中还有一些值得注意的变化,我们将在此重点介绍

  • 支持最近发布的 Numpy 1.16 和 Pandas 0.24
  • 支持 Pandas Extension Arrays(详见 Tom Augspurger 关于该主题的博文
  • Dask dataframe 中的高级图和简单情况下的操作符融合
  • 增加了对其他类似 Numpy 和 Pandas 的库的支持,使其能在 Dask Array/Dataframe 中工作

支持 Numpy 1.16 和 Pandas 0.24

Numpy 和 Pandas 在过去几个月里都发展迅速。我们对这两个库在可扩展性方面带来的变化感到兴奋。Dask array/dataframe 子模块已更新,以便与这些最新变化良好协作。

Pandas Extension Arrays

特别是,Dask Dataframe 支持 Pandas Extension arrays,这意味着更容易将第三方 Pandas 包(如 CyberPandas 或 Fletcher)与 Dask Dataframe 并行使用。

更多信息请参阅 Tom Augspurger 的博文

Dask Dataframe 中的高级图

一段时间以来,Dask array 对“atop”操作(逐元素、广播、转置、张量点积、归约)有一些高级图,这使得在此类计算中可以减少开销并实现任务融合。

y = da.exp(x + 1).T  # These operations get fused to a single task

我们将 atop 重命名为 blockwise,使其更加通用,并且已经开始将其应用于 Dask Dataframe,这有助于在执行包含许多简单操作的计算时大幅减少开销。

这仍然需要改进以增加其适用的情况类别,但我们已经在以前未见过的负载上看到了很好的加速效果。

The da.atop function has been deprecated in favor of da.blockwise. There is now also a dd.blockwise which shares a common code path.

非 Pandas dataframe 和非 Numpy 数组类型

我们正在努力使 Dask 对其可以操作的内存中数组和 dataframe 对象的类型更加不可知。Dask Array 不再是 Numpy 数组的网格,Dask Dataframe 也不再是 Pandas dataframes 的序列,我们将这一限制放宽为类似 Numpy 的数组网格和类似 Pandas 的 dataframes 序列。

这是一项持续进行的工作,目标是支持替代的后端,如 scipy.sparsepydata/sparsecupycudf 和其他系统。

最近有关于 数组dataframes 的博文,展示了在 GPU 上实现此目标的初步概念验证。

致谢

自上次发布博文以来,已经有多个版本发布。以下是在 9 月 5 日 0.19.0 版本发布以来为 dask/dask 仓库做出贡献的人员

  • Anderson Banihirwe
  • Antonino Ingargiola
  • Armin Berres
  • Bart Broere
  • Carlos Valiente
  • Daniel Li
  • Daniel Saxton
  • David Hoese
  • Diane Trout
  • Damien Garaud
  • Elliott Sales de Andrade
  • Eric Wolak
  • Gábor Lipták
  • Guido Imperiale
  • Guillaume Eynard-Bontemps
  • Itamar Turner-Trauring
  • James Bourbeau
  • Jan Koch
  • Javad
  • Jendrik Jördening
  • Jim Crist
  • Jonathan Fraine
  • John Kirkham
  • Johnnie Gray
  • Julia Signell
  • Justin Dennison
  • M. Farrajota
  • Marco Neumann
  • Mark Harfouche
  • Markus Gonser
  • Martin Durant
  • Matthew Rocklin
  • Matthias Bussonnier
  • Mina Farid
  • Paul Vecchio
  • Prabakaran Kumaresshan
  • Rahul Vaidya
  • Stephan Hoyer
  • Stuart Berg
  • TakaakiFuruse
  • Takahiro Kojima
  • Tom Augspurger
  • Yu Feng
  • Zhenqing Li
  • @milesial
  • @samc0de
  • @slnguyen

以下是在 9 月 5 日 0.19.0 版本发布以来为 dask/distributed 仓库做出贡献的人员

  • Adam Klein
  • Brett Naul
  • Daniel Farrell
  • Diane Trout
  • Dirk Petersen
  • Eric Ma
  • Jim Crist
  • John Kirkham
  • Gaurav Sheni
  • Guillaume Eynard-Bontemps
  • Loïc Estève
  • Marius van Niekerk
  • Matthew Rocklin
  • Michael Wheeler
  • MikeG
  • NotSqrt
  • Peter Killick
  • Roy Wedge
  • Russ Bubley
  • Stephan Hoyer
  • @tjb900
  • Tom Rochette
  • @fjetter

博客评论由 Disqus 提供支持