Dask 开发日志
这项工作得到 Anaconda Inc 的支持
为了增加透明度,我正尝试更频繁地撰写博客,介绍围绕 Dask 及相关项目的最新工作进展。此处提及的内容均尚未投入生产环境。这篇博文是仓促写就,因此请勿期望其精雕细琢。
自两周前 0.19.0 版本发布博文以来的上次更新后,我们在以下领域开展了活动:
- 更新 Dask 示例以在 Binder 上使用 JupyterLab
- 将 Dask 示例渲染为静态 HTML 页面以便于查看
- 整合和统一分散的文档
- 弃用 hdfs3 库,转而采用 Apache Arrow 中的解决方案。
- 继续开展增量训练模型超参数选择的工作
- 发布两个小型错误修复版本
- Pangeo 社区关于结合使用 Binder 与 Dask 的博文
- Skein/Yarn 更新
1:更新 Dask 示例以使用 JupyterLab 扩展
新的 dask-labextension 将 Dask 的仪表板图表嵌入到 JupyterLab 会话中,这样您就可以直接从 Jupyter 轻松访问关于您计算的信息。它已于几周前随上一个版本一起发布。
然而,自那时起,我们已将其连接到我们的实时示例系统,该系统允许用户使用 mybinder.org 在小型云实例上尝试 Dask。如果您想一起尝试 Dask 和 JupyterLab,请前往这里
感谢 Ian Rose 管理此事。
2:将 Dask 示例渲染为静态文档
使用 nbsphinx Sphinx 扩展自动运行和渲染 Jupyter Notebook,我们将实时示例库变成了静态文档,以便于查看。
这些示例目前可在 https://dask.org.cn/dask-examples/ 查看,但很快将迁移至 examples.dask.org 并可在所有 dask 页面的导航栏中访问。
感谢 Tom Augspurger 完成这项工作。
3:将文档整合到单个组织和样式下
Dask 文档目前分散在许多小型托管站点,每个站点都与特定的子包相关联,如 dask-ml、dask-kubernetes、dask-distributed 等。这方便了开发(鼓励开发者在修改代码时修改文档),但导致用户体验碎片化,因为用户不知道如何发现和有效地探索我们完整的文档。
为了解决这个问题,我们正在做两件事:
-
将所有站点移至 dask.org 域下
Anaconda Inc,这家雇佣了几位 Dask 开发者(包括我本人)的公司,最近将 dask.org 域名捐赠给了 NumFOCUS。我们一直在逐步将我们所有独立的站点迁移到该位置用于我们的文档。
-
开发一个统一的 Sphinx 主题 dask-sphinx-theme
这不仅具有统一的样式,还包含一个可在项目间自动共享的导航栏。该导航栏使得内容的发现和探索变得容易,并且我们可以在一个仓库中保持其更新。
您可以通过访问任何 Dask 站点来查看其工作原理,例如 docs.dask.org。
感谢 Tom Augspurger 管理这项工作,以及 Andy Terrel 耐心处理 NumFOCUS 方面和域名方面的事宜。
4:弃用 hdfs3 库
多年来,Dask 社区一直维护着 hdfs3 库,该库允许从 Python 本地访问 Hadoop 文件系统。它使用了 Pivotal 用 C++ 编写的 libhdfs3 库,并在很长一段时间内是唯一成熟地从 Python 操作 HDFS 的高性能方式。
然而,自那时起,PyArrow 开发了与标准 libhdfs 库的高效绑定,并通过其 Pythonic 文件系统接口暴露出来,这个接口幸运的是与 Dask 兼容。
我们已经告诉人们使用 Arrow 解决方案一段时间了,并认为现在是时候正式这样做了(参见 dask/hdfs3 #170)。自上次错误修复版本以来,Dask 将默认使用 Arrow,尽管 hdfs3
库仍然可用,但 Dask 维护者将来可能不会在这上面花费太多时间。
感谢 Martin Durant 在这段时间里构建和维护 HDFS3。
5:增量训练模型的超参数选择
在 Dask-ML 中,我们继续研究实现了 partial_fit
API 的模型的超参数选择。我们已经构建了良好的算法和基础设施来处理这个问题,目前正在微调 API、参数名称等。
如果您对此过程感兴趣,欢迎到 dask/dask-ml #356 参与讨论。
感谢 Tom Augspurger 和 Scott Sievert 的这项工作。
6:两个小型错误修复版本
在系统稳定期间,我们一直努力增加错误修复版本的发布频率。自上次撰文以来,已发布了两个小型错误修复版本。您可以在这里阅读更多关于它们的信息:
7:Binder + Dask
Pangeo 社区已经开展了将 Binder 与 Dask 集成的工作,并在此撰写了关于这一过程的文章:Pangeo 遇上 Binder
感谢 Joe Hamman 的这项工作和博文。
8:Skein/Yarn 更新
用于在 Hadoop 集群上部署 Dask 的 Dask-Yarn 连接使用了库 Skein 来方便地从 Python 管理 Yarn 作业。
Skein 在过去几周内非常活跃,包括以下方面:
- 一个项目的 Web UI。参见 jcrist/skein #68
- Criteo 的一个使用 Skein 的 TensorFlow on Yarn 项目。参见 github.com/criteo/tf-yarn
这项工作主要由 Jim Crist 和其他 Skein 贡献者管理。
博客评论由 Disqus 提供