Genevieve Buckley 于 2021 年被聘为 Dask 生命科学研究员,由 CZI 资助。目标是改进 Dask,并特别关注生命科学社区。这篇博客文章包含另一个进展更新,以及回顾今年的一些个人思考。
2021 年 2 月至 9 月的先前进展更新可在此处获取。请继续阅读 2021 年 9 月至 12 月期间的进展更新。
总结一下,在 2021 年 9 月至 12 月期间(包括这两个月),有
请继续阅读本期间内特殊项目的更详细描述。
Dask 陈旧问题冲刺活动
在两周内,我得以做到
同一时期,还有许多其他人也做了相关工作,跟进旧的拉取请求和其他维护工作。总的来说,这次冲刺活动非常成功。
Dask 用户调查结果分析
我在 9 月分析了 2021 年 Dask 用户调查的结果。这是一项非常有趣的任务。由于我们在 2021 年提出了更多问题(18 个新问题,总共 43 个问题),与前几年相比,有更多数据可供深入挖掘。您可以在此处阅读详细信息。
这项工作的最大益处是,现在我们可以利用这些数据来优先改进文档和示例。用户呼声最高的两项是提供更多文档和他们所在行业的更多示例。但直到今年我们才开始询问人们在哪种行业工作,这样我们就可以针对最需要它的领域(地球科学、生命科学和金融)提供新的叙述性文档。
ITK 与 Dask 的兼容性
我为 itk 图像实现了 pickle 序列化(ITK PR #2829)。这应该是使 ITK 图像与 Dask 兼容所需的最后一块重要拼图。它建立在 Matt McCormick 和 John Kirkham 的早期工作之上(您可以在此处阅读一篇关于他们早期工作的博客文章)。
提高 Dask 与其他项目的交叉兼容性是我的一项主要目标,因此这是一项重要的工作。我在“Dask 的下一步计划是什么?”一节中概述了下一步。
改进分块(rechunking)
我实现了 PR #8124,修复了重新塑造 Dask 数组时可能导致输出数组块过大而无法容纳在内存中的错误。生命科学用户调查的反馈表明,改进 Dask 在分块方面的性能是优先事项。这项工作有助于解决这个问题。
高级图(High Level Graph)工作
今年早些时候的一项主要工作是为数组切片和数组重叠操作引入高级图。这是一项需要大量持续努力的大工程。PR #8467 解决了这项工作的下一步之一。
dask-image 的查找对象(find_objects)函数
我在 PR #240 中为 dask-image 实现了一个 find_objects 函数。此实现无需提前知道最大标签编号,这是对先前尝试的重大改进。这是一个重要的进步,因为它消除了引入类似于 scikit-image 的 regionprops 功能的主要障碍。
博客文章
2021 年 9 月至 12 月期间发布的 Dask 博客文章包括
教程
回顾一整年,有些事情进展顺利,有些事情则不太成功。
我的个人亮点包括
Dask 陈旧问题冲刺活动
社区建设活动
我们在社区建设和活动方面取得了非常成功的一年。这包括教程、研讨会、会议和社区外展活动。主要活动总结
可视化工作
这是影响非常大的工作,我对我们取得的成就感到满意。我们在生命科学社区调查中,用户要求改进可视化工具。这是一个高优先级事项,因为可视化工具的改进会使使用 Dask 的每个人受益。
技术资源
我们从未真正解决找到可以请教技术问题的人的问题。我确实有一些可以请教特定项目的人,但在大多数情况下,我没有一个好的方式将问题导向正确的人。这是一个具有挑战性的问题,特别是因为大多数 Dask 维护者和贡献者也有全职工作。在我看来,这对我所做的工作以及我们能够取得的成就产生了负面影响。
加入 @dask/maintenance 团队
如果你没有 GitHub 权限来处理通知,那么接收通知就没有意义。将来我认为我们应该只将至少具有分类或写入权限的人添加到 GitHub 团队中。
实时互动
Slack
Slack 很适合私信特定人员安排会议时间等,但公共频道对我个人来说最终没有太大用处。
缺乏与其他项目团队的整合
作为一名独立开发者,你只能完成这么多工作。我们曾希望我能够自然地与来自几个不同项目的团队合作,但实际上并没有这样。napari 项目是例外,并且这种关系在开始为 Dask 工作之前就已经建立得很好了。也许我们可以在这方面做得更多,以促进更多互动。
Genevieve 明年将开始一份新工作,您可以在 GitHub 上找到她 @GeneviveeBuckley。
Dask 发生了很多事情,但还有很多事情要做。以下是几个项目的下一步总结。我们非常希望有新人能够接力并为其中任何一个项目做出贡献。
ITK 图像与 Dask 的兼容性
提高分块(rechunking)性能
需要更多与分块相关的性能改进(参见 #7950 和 #7980)。
数组和切片的高级图工作
数组切片和重叠的高级图工作有许多下一步。Ian Rose 在此处撰写了一份出色的总结。简而言之,必须实现 cull 和 get_output_keys 方法,然后才能进行低级融合和优化。
相关链接
文档