这项工作由 Anaconda 公司 以及来自 Moore 基金会的数据驱动发现计划支持
为了提高透明度,我正尝试更频繁地撰写博客,介绍围绕 Dask 和相关项目的当前工作。这里的内容都尚未准备好投入生产。这篇博文是仓促写就的,因此不应期待精细的润色。
Dask 和 Dask 相关项目目前的开发工作包括以下方面:
Dask 社区沟通通常通过 Github Issues 进行 bug 和功能跟踪,在 Stack Overflow 的 #dask 标签下回答用户问题,以及使用一个不常用的 Gitter 聊天室。
此外,为 Anaconda 公司工作的 Dask 开发者(我们大约有五名兼职人员)使用内部公司聊天和每周一次的闭门视频会议。我们现在正努力在可能的情况下迁移出封闭系统。
关于未来方向的详细信息请见 dask/dask#2945。欢迎对该议题提出想法和评论。
当您开始构建拥有 1000 个 worker 的集群时,分布式调度器在某些工作负载下可能会成为瓶颈。在与 PyPy 和 Cython 开发团队合作后,我们决定重写调度器的部分代码,使其更容易被这些技术加速。请注意,目前尚未发生实际加速,只是对内部状态进行了重构。
之前,分布式调度器主要围绕着大量相互之间进行大量索引的 Python 字典、集合和列表。这样做既是出于低技术代码技术的原因,也是出于性能原因(Python 核心数据结构速度很快)。然而,PyPy 和 Cython 等编译器技术可以将 Python 对象访问优化到 C 语言的速度,因此我们正在尝试从 Python 数据结构切换到 Python 对象,看看这能带来多大帮助。
这一改变在操作上是不可见的(完整的测试套件几乎没有变化),但会是调度器内部状态的一个重大变化。我们保留了一个兼容层,但那些围绕内部状态构建自己诊断工具的人应该关注新的变化。
Antoine Pitrou 正在进行的持续工作,请见 dask/distributed #1594
为了支持 Pangeo 项目,以实现大气和海洋数据的可伸缩数据分析,我们一直在改进在云基础设施上启动 Dask 的工具,特别是利用 Kubernetes。
为求此目标,我们正在为 Dask 制作一些灵活的 Docker 容器和 Helm Charts,并希望在未来几周内将其与 JupyterHub 结合起来。
我在以下仓库中完成的工作。非常欢迎反馈。我在这里是边做边学 Helm。
如果您在 Kubernetes 上使用 Helm,则可以尝试以下操作:
helm repo add dask https://dask.github.io/helm-chart
helm update
helm install dask/dask
这将安装完整的 Dask 集群和一个 Jupyter 服务器。Docker 容器包含入口点,可以轻松地用自定义软件包更新其环境。
这项工作扩展了之前软件包 dask-kubernetes 的工作,但模块化程度更高,可以与其他系统一起使用。
自适应部署(集群管理器根据当前工作负载扩展或缩减 Dask 集群)最近进行了改进,包括修复了一些奇怪或不常见行为相关的 bug。
由 Russ Bubley 完成的工作,请见此处
NumPy 1.14 即将发布。Dask.array 不得不更新在 dask/dask #2694 中处理结构化 dtypes 的方式(Tom Augspurger 完成的工作)。
Dask.dataframe 正在获得同时对列和索引进行合并/连接的能力,这类似于 Pandas 0.22 中发布的一项功能。Jon Mease 在 dask/dask #2960 中完成的工作。
Dask-ML 最近在 dask/dask-ml #91 中添加了一个近似且可伸缩的谱聚类算法(图库示例)。