2019 Dask 用户调查 2019 dask 用户调查
作者:Tom Augspurger
2019 Dask 用户调查结果
本文展示了今年夏天早些时候进行的 2019 Dask 用户调查的结果。感谢所有花时间填写调查的人!这些结果有助于我们更好地了解 Dask 社区,并将指导未来的开发工作。
原始数据以及分析的初步结果可以在此 binder 中找到
如果您在数据中发现了什么,请告诉我们。
要点
我们收到了 259 份调查回复。总的来说,我们发现调查受访者非常关心改进文档、易用性(包括易于部署)和扩展性。虽然 Dask 汇集了许多不同的社区(大型数组与大型数据帧、传统 HPC 用户与云原生资源管理器),但在对 Dask 最重要的事情上,大家普遍达成了共识。
现在我们将逐个介绍一些问题,重点展示特别有趣的结果。
您如何使用 Dask?
对于学习资源,几乎所有受访者都使用了文档。
大多数受访者至少偶尔使用 Dask。幸运的是,有相当一部分受访者只是在了解 Dask,但仍然花时间参与了调查。
我很好奇随着用户经验的增长,学习资源的使用情况会如何变化。我们可以预期那些刚开始了解 Dask 的人会从 examples.dask.org
开始,在那里他们可以在不安装任何东西的情况下尝试 Dask。
总的来说,文档在所有用户群体中仍然是首选资源。
各群体对 Dask 教程 和 dask 示例 的使用情况相对一致。常规用户和新用户之间的主要区别在于,常规用户更有可能在 GitHub 上参与。
从 StackOverflow 问题和 GitHub issues 中,我们可以模糊地了解库的哪些部分被使用了。调查显示(至少对我们的受访者而言),DataFrame 和 Delayed 是最常用的 API。
About 65.49% of our respondests are using Dask on a Cluster.
但大多数受访者也在他们的笔记本电脑上使用 Dask。这突显了 Dask 向下扩展的重要性,无论是使用 LocalCluster
进行原型设计,还是使用 LocalCluster
或单机调度器进行核外分析。
大多数受访者至少有时会交互式地使用 Dask。
大多数受访者认为,增加文档和示例是对项目最有价值的改进。在新用户中尤其明显。但即使是在每天使用 Dask 的用户中,也有更多人认为“更多示例”比“新功能”或“性能改进”更有价值。
目前哪一项对您的帮助最大? | 错误修复 | 更多文档 | 我领域内的更多示例 | 新功能 | 性能改进 |
---|---|---|---|---|---|
您多久使用一次 Dask? | |||||
每天 | 9 | 11 | 25 | 22 | 23 |
只是了解一下 | 1 | 3 | 18 | 9 | 5 |
偶尔 | 14 | 27 | 52 | 18 | 15 |
也许某些 Dask 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”用户(我们预计他们相对高级)可能会将功能和性能置于文档之上。但所有人都一致认为,更多示例是最高优先级。
常见功能请求
对于特定功能,我们(作为开发者)列出了一些我们认为可能重要的事项。
最明显的突出之处在于有多少人认为“更好的 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 足够稳定。也许他们已经克服了错误并找到了解决方法(百分比按行归一化)。
总结
- 我们应该优先改进和扩展我们的文档和示例。这可以通过 Dask 维护者从社区中寻求示例来实现。许多 https://examples.dask.org.cn 上的示例是由使用 Dask 的领域专家开发的。
- 改进对更大问题的扩展性很重要,但我们不应为此牺牲单机使用场景。
- 交互式和批处理工作流程都很重要。
- Dask 的各个子社区之间的相似之处多于不同之处。
再次感谢所有受访者。我们期待重复这一过程,以识别随时间的变化趋势。
博客评论由 Disqus 提供支持