2019 Dask 用户调查结果

本文展示了今年夏天早些时候进行的 2019 Dask 用户调查的结果。感谢所有花时间填写调查的人!这些结果有助于我们更好地了解 Dask 社区,并将指导未来的开发工作。

原始数据以及分析的初步结果可以在此 binder 中找到

Binder

如果您在数据中发现了什么,请告诉我们。

要点

我们收到了 259 份调查回复。总的来说,我们发现调查受访者非常关心改进文档、易用性(包括易于部署)和扩展性。虽然 Dask 汇集了许多不同的社区(大型数组与大型数据帧、传统 HPC 用户与云原生资源管理器),但在对 Dask 最重要的事情上,大家普遍达成了共识。

现在我们将逐个介绍一些问题,重点展示特别有趣的结果。

您如何使用 Dask?

对于学习资源,几乎所有受访者都使用了文档。

svg

大多数受访者至少偶尔使用 Dask。幸运的是,有相当一部分受访者只是在了解 Dask,但仍然花时间参与了调查。

svg

我很好奇随着用户经验的增长,学习资源的使用情况会如何变化。我们可以预期那些刚开始了解 Dask 的人会从 examples.dask.org 开始,在那里他们可以在不安装任何东西的情况下尝试 Dask。

svg

总的来说,文档在所有用户群体中仍然是首选资源。

各群体对 Dask 教程dask 示例 的使用情况相对一致。常规用户和新用户之间的主要区别在于,常规用户更有可能在 GitHub 上参与。

从 StackOverflow 问题和 GitHub issues 中,我们可以模糊地了解库的哪些部分被使用了。调查显示(至少对我们的受访者而言),DataFrame 和 Delayed 是最常用的 API。

svg

About 65.49% of our respondests are using Dask on a Cluster.

但大多数受访者在他们的笔记本电脑上使用 Dask。这突显了 Dask 向下扩展的重要性,无论是使用 LocalCluster 进行原型设计,还是使用 LocalCluster 或单机调度器进行核外分析。

svg

大多数受访者至少有时会交互式地使用 Dask。

svg

大多数受访者认为,增加文档和示例是对项目最有价值的改进。在新用户中尤其明显。但即使是在每天使用 Dask 的用户中,也有更多人认为“更多示例”比“新功能”或“性能改进”更有价值。

按行归一化。颜色越深表示该使用频率的用户中,更偏爱该优先级的比例越高。
目前哪一项对您的帮助最大? 错误修复 更多文档 我领域内的更多示例 新功能 性能改进
您多久使用一次 Dask?
每天 9 11 25 22 23
只是了解一下 1 3 18 9 5
偶尔 14 27 52 18 15

也许某些 Dask API 的用户感受与整个群体不同?我们根据 API 使用情况而非使用频率进行了类似的分析。

按行归一化。颜色越深表示使用该 API 的用户中,更偏爱该优先级的比例越高。
目前哪一项对您的帮助最大? 错误修复 更多文档 我领域内的更多示例 新功能 性能改进
Dask API
Array 10 24 62 15 25
Bag 3 11 16 10 7
DataFrame 16 32 71 39 26
Delayed 16 22 55 26 27
Futures 12 9 25 20 17
ML 5 11 23 11 7
Xarray 8 11 34 7 9

没有什么特别突出的地方。“Futures”用户(我们预计他们相对高级)可能会将功能和性能置于文档之上。但所有人都一致认为,更多示例是最高优先级。

常见功能请求

对于特定功能,我们(作为开发者)列出了一些我们认为可能重要的事项。

svg

最明显的突出之处在于有多少人认为“更好的 NumPy/Pandas 支持”是“最关键的”。事后看来,最好能有一个后续的填空题,以便了解每个受访者对此的看法。最简洁的解释是“覆盖更多 NumPy / pandas API”。

“易于部署”在“对我来说至关重要”的比例很高。同样事后看来,我注意到有点模糊。这是否意味着人们希望 Dask 更易于部署?或者这意味着他们目前认为易于部署的 Dask 至关重要?无论如何,我们可以在部署方面优先考虑简洁性。

相对较少的受访者关心“管理多个用户”之类的事情,尽管我们预计这在系统管理员中会比较受欢迎,但系统管理员人口较少。

当然,也有一些人在将 Dask 推向极限,对他们来说,“改进扩展性”至关重要。

您还使用哪些其他系统?

相对较高比例的受访者使用 Python 3(最新 Python 开发者调查 中为 84%,此处为 97%)。

3    97.29%
2     2.71%
Name: Python 2 or 3?, dtype: object

我们有点惊讶地看到 SSH 是最受欢迎的“集群资源管理器”。

SSH                                                       98
Kubernetes                                                73
HPC resource manager (SLURM, PBS, SGE, LSF or similar)    61
My workplace has a custom solution for this               23
I don't know, someone else does this for me               16
Hadoop / Yarn / EMR                                       14
Name: If you use a cluster, how do you launch Dask? , dtype: int64

集群资源管理器与 API 使用情况如何比较?

Dask API Array Bag DataFrame Delayed Futures ML Xarray
如果您使用集群,您如何启动 Dask?
自定义 15 6 18 17 14 6 7
HPC 50 13 40 40 22 11 30
Hadoop / Yarn / EMR 7 6 12 8 4 7 3
Kubernetes 40 18 56 47 37 26 21
SSH 61 23 72 58 32 30 25

HPC 用户相对大量使用 dask.array 和 xarray。

有点令人惊讶的是,Dask 的重度用户认为 Dask 足够稳定。也许他们已经克服了错误并找到了解决方法(百分比按行归一化)。

svg

总结

  1. 我们应该优先改进和扩展我们的文档和示例。这可以通过 Dask 维护者从社区中寻求示例来实现。许多 https://examples.dask.org.cn 上的示例是由使用 Dask 的领域专家开发的。
  2. 改进对更大问题的扩展性很重要,但我们不应为此牺牲单机使用场景。
  3. 交互式和批处理工作流程都很重要。
  4. Dask 的各个子社区之间的相似之处多于不同之处。

再次感谢所有受访者。我们期待重复这一过程,以识别随时间的变化趋势。


博客评论由 Disqus 提供支持