目录

更新日志

目录

更新日志

注意

Distributed 的更新日志条目现已包含在Dask 更新日志中。

2023.9.3

发布于 2023 年 9 月 29 日

重点改进

减少合并和混洗图优化期间的内存消耗

此前,在优化用于混洗和合并操作的任务图时会出现较大的内存峰值(参见GH#8196获取示例)。本次发布移除了该内存峰值。

更多详情请参阅 GH#8197,由 Patrick Hoefler 贡献。

安静地关闭 JupyterLab

此前,在调度器上运行 Jupyter 时(例如使用 --jupyter CLI 标志),从 Web 应用程序关闭笔记本服务器时会引发错误。本次发布确保不再引发错误,并使关闭过程干净。

详情请参阅 GH#8220,由 Thomas Grainger 贡献。

附加更改

2023.9.2

发布于 2023 年 9 月 15 日

重点改进

减少点对点 (P2P) 混洗的内存占用

显著降低了 P2P 混洗使用的峰值和平均内存(最高可降低 2 倍)。此更改还将 P2P 支持的 pyarrow 最低版本提高到 pyarrow=12

详情请参阅 GH#8157,由 Hendrik Makait 贡献。

改进的插件 API

引入了两项插件更改,以提供更一致、更便捷的插件用户体验

  1. 插件现在必须继承自 WorkerPluginSchedulerPluginNannyPlugin 基类。不继承基类的旧式插件仍可工作,但会发出弃用警告。

  2. 引入了新的 Client.register_plugin() 方法,以取代先前的 Client.register_worker_plugin()Client.register_scheduler_plugin() 方法。现在所有插件都应使用集中的 Client.register_plugin() 方法注册。

from dask.distributed import WorkerPlugin, SchedulerPlugin

class MySchedulerPlugin(SchedulerPlugin):      # Inherits from SchedulerPlugin
    def start(self, scheduler):
        print("Hello from the scheduler!")

class MyWorkerPlugin(WorkerPlugin):            # Inherits from WorkerPlugin
    def setup(self, worker):
        print(f"Hello from Worker {worker}!")

client.register_plugin(MySchedulerPlugin())    # Single method to register both types of plugins
client.register_plugin(MyWorkerPlugin())

详情请参阅 GH#8169GH#8150,由 Hendrik Makait 贡献。

针对配置选项的重命名发出弃用警告

当使用已重命名的 Dask 配置选项时,用户现在会收到一个弃用警告,指示其新的名称。

详情请参阅 GH#8179,由 crusaderky 贡献。

附加更改

2023.9.1

发布于 2023 年 9 月 6 日

增强功能

弃用

维护

2023.9.0

发布于 2023 年 9 月 1 日

增强功能

错误修复

文档

维护

2023.8.1

发布于 2023 年 8 月 18 日

新功能

增强功能

错误修复

文档

维护

2023.8.0

发布于 2023 年 8 月 4 日

增强功能

错误修复

文档

维护

2023.7.1

发布于 2023 年 7 月 20 日

增强功能

错误修复

文档

维护

2023.7.0

发布于 2023 年 7 月 7 日

增强功能

错误修复

文档

维护

2023.6.1

发布于 2023 年 6 月 26 日

增强功能

错误修复

维护

2023.6.0

发布于 2023 年 6 月 9 日

增强功能

错误修复

维护

2023.5.1

发布于 2023 年 5 月 26 日

注意

此版本放弃对 Python 3.8 的支持。从本版本开始,Dask 支持 Python 3.9、3.10 和 3.11。更多详情请参阅此社区议题

增强功能

错误修复

维护

2023.5.0

发布于 2023 年 5 月 12 日

增强功能

  • Client.upload_file 发送到 Workers 和 Scheduler,并重命名临时目录 (GH#7802) Miles

  • 允许 dashboard 与 bokeh prereleases 一起使用 (GH#7814) James Bourbeau

错误修复

维护

2023.4.1

发布于 2023 年 4 月 28 日

增强功能

错误修复

维护

2023.4.0

发布于 2023 年 4 月 14 日

注意

在此版本中,我们进行了一项更改,要求 Dask scheduler 具有与客户端和 workers 一致的软件和硬件能力。

一直以来都建议您的客户端和 workers 具有一致的软件和硬件环境,以便可以在它们之间进行数据结构和依赖项的 pickle 化和传递。然而,Dask scheduler 的最近更改意味着我们现在也要求您的 scheduler 与其他所有部分具有相同的统一环境。

增强功能

错误修复

维护

2023.3.2.1

发布于 2023 年 4 月 5 日

错误修复

2023.3.2

发布于 2023 年 3 月 24 日

增强功能

错误修复

文档

维护

2023.3.1

发布于 2023 年 3 月 10 日

增强功能

错误修复

文档

  • Client.submit, Client.mapClient.scatter 添加注释,说明当前任务图解析算法的限制 (GH#7588) Eugene Druzhynin

维护

2023.3.0

发布于 2023 年 3 月 1 日

错误修复

维护

2023.2.1

发布于 2023 年 2 月 24 日

增强功能

错误修复

维护

2023.2.0

发布于 2023 年 2 月 10 日

增强功能

维护

2023.1.1

发布于 2023 年 1 月 27 日

增强功能

错误修复

文档

维护

2023.1.0

发布于 2023 年 1 月 13 日

新功能

增强功能

错误修复

文档

维护

2022.12.1

发布于 2022 年 12 月 16 日

增强功能

错误修复

维护

2022.12.0

发布于 2022 年 12 月 2 日

增强功能

错误修复

文档

维护

2022.11.1

发布于 2022 年 11 月 18 日

增强功能

文档

维护

2022.11.0

发布于 2022 年 11 月 15 日

注意

此版本将默认调度模式更改为使用排队。在大多数情况下,这将显著减少集群内存使用,并通常提高稳定性和性能。在此处了解更多信息,并请在此讨论中提供反馈。

在极少数情况下,这可能会使某些工作负载变慢。有关更多信息以及如何切换回旧模式,请参阅文档

新特性

  • 添加 ForwardOutput worker 插件,用于将 stdoutstderr 转发给客户端。(GH#7297) Hendrik Makait

  • 前缀级别的持续时间计数器 (GH#7288) Florian Jetter

  • 在 repr 中包含用于启动 JupyterLab 布局的按钮 (GH#7218) Ian Rose

增强功能

文档

错误修复

维护

2022.10.2

发布于 2022 年 10 月 31 日

这是一个热修复版本

2022.10.1

发布于 2022 年 10 月 28 日

新特性

增强功能

文档

错误修复

维护

2022.10.0

发布于 2022 年 10 月 14 日

注意

此版本弃用了 dask-schedulerdask-workerdask-ssh CLI,转而推荐使用 dask schedulerdask workerdask ssh。旧式 CLI 将继续工作一段时间,但在未来的版本中将被移除。

作为此次迁移的一部分,--reconnect--nprocs--bokeh--bokeh-port CLI 选项也已从旧式和新式 CLI 中移除。这些选项之前已被弃用。

增强功能

错误修复

维护

2022.9.2

发布于 2022 年 9 月 30 日

增强功能

错误修复

文档

维护

2022.9.1

发布于 2022 年 9 月 16 日

增强功能

错误修复

维护

2022.9.0

发布于 2022 年 9 月 2 日

增强功能

错误修复

弃用

文档

维护

2022.8.1

发布于 2022 年 8 月 19 日

新特性

增强功能

错误修复

文档

维护

2022.8.0

发布于 2022 年 8 月 5 日

新特性

改进

Bug 修复

弃用

文档

维护

2022.7.1

发布于 2022 年 7 月 22 日

新特性

改进

Bug 修复

维护

2022.7.0

发布于 2022 年 7 月 8 日

改进

Bug 修复

维护

2022.6.1

发布于 2022 年 6 月 24 日

要点

此版本包含了 Worker 状态机重构。预期 worker 状态应为其自身的同步子类。将所有状态提取到其自身的类中,可以让我们在不调用任何并发或异步代码的情况下编写有针对性的单元测试。

更多信息请参见 GH#5736

改进

Bug 修复

弃用

维护

2022.6.0

发布于 2022 年 6 月 10 日

改进

Bug 修复

弃用

文档

维护

2022.05.2

发布于 2022 年 5 月 26 日

改进

Bug 修复

维护

2022.05.1

发布于 2022 年 5 月 24 日

新特性

改进

Bug 修复

弃用

文档

维护

2022.05.0

发布于 2022 年 5 月 2 日

要点

这是一个针对 此问题 的错误修复版本。

改进

Bug 修复

2022.04.2

发布于 2022 年 4 月 29 日

改进

Bug 修复

弃用

文档

维护

2022.04.1

发布于 2022 年 4 月 15 日

新特性

增强

错误修复

维护

2022.04.0

发布于 2022 年 4 月 1 日

注意

这是第一个支持 Python 3.10 的版本

新特性

增强

错误修复

弃用

文档

维护

2022.03.0

发布于 2022 年 3 月 18 日

新特性

增强

错误修复

文档

维护

2022.02.1

发布于 2022 年 2 月 25 日

新特性

增强

错误修复

弃用

文档

维护

2022.02.0

发布于 2022 年 2 月 11 日

注意

这是最后一个支持 Python 3.7 的版本

增强

错误修复

弃用

文档

维护

2022.01.1

发布于 2022 年 1 月 28 日

新特性

增强

错误修复

文档

维护

2022.01.0

发布于 2022 年 1 月 14 日

新特性

增强

错误修复

文档

维护

2021.12.0

发布于 2021 年 12 月 10 日

增强

错误修复

文档

维护

2021.11.2

发布于 2021 年 11 月 19 日

2021.11.1

发布于 2021 年 11 月 8 日

2021.11.0

发布于 2021年11月5日

2021.10.0

发布于 2021年10月22日

注意

此版本修复了与单机 Dask 集群相关的潜在安全漏洞。使用 dask.distributed.LocalClusterdask.distributed.Client()(默认为使用 LocalCluster)启动的集群会错误地将其各自的 Dask worker 配置为监听外部接口(通常使用随机选择的高端口),而不是仅监听 localhost。使用此方法创建且运行在暴露了这些端口的机器上的 Dask 集群,可能被高级攻击者利用来实现远程代码执行。在已配置标准防火墙的机器上运行的用户不应受到影响。此漏洞记录在 CVE-2021-42343 中,并在此版本中得到修复 (GH#5427)。感谢 Jean-Pierre van Riel 发现并报告此问题。

2021.09.1

发布于 2021年9月21日

2021.09.0

发布于 2021年9月3日

2021.08.1

发布于 2021年8月20日

2021.08.0

发布于 2021年8月13日

2021.07.2

发布于 2021年7月30日

2021.07.1

发布于 2021年7月23日

2021.07.0

发布于 2021年7月9日

2021.06.2

发布于 2021年6月22日

2021.06.1

发布于 2021年6月18日

2021.06.0

发布于 2021 年 6 月 4 日

2021.05.1

发布于 2021 年 5 月 28 日

2021.05.0

发布于 2021 年 5 月 14 日

2021.04.1

发布于 2021 年 4 月 23 日

2021.04.0

发布于 2021 年 4 月 2 日

2021.03.1

发布于 2021 年 3 月 26 日

2021.03.0

发布于 2021 年 3 月 5 日

注意

这是第一个支持 Python 3.9 的版本,也是最后一个支持 Python 3.6 的版本

2021.02.0

发布于 2021 年 2 月 5 日

2021.01.1

发布于 2021 年 1 月 22 日

2021.01.0

发布于 2021 年 1 月 15 日

2020.12.0

发布于 2020 年 12 月 10 日

亮点

  • 版本控制方案切换到 CalVer

  • scheduler 现在可以接收 Dask HighLevelGraph,而不是原始字典任务图。这使得从 client 到 scheduler 的任务图通信更加高效。

  • 添加了使用 dask.annotations context manager 为自定义 Layer 级别 annotation(如 priorityretries 等)的支持。

  • 将 Dask 的最低支持版本更新至 2020.12.0。

  • 添加了许多类型 annotation 和更新,以便逐步对 scheduler 进行 Cython 化。

所有更改

2.30.1 - 2020-11-03

2.30.0 - 2020-10-06

2.29.0 - 2020-10-02

2.28.0 - 2020-09-25

2.27.0 - 2020-09-18

2.26.0 - 2020-09-11

2.25.0 - 2020-08-28

2.24.0 - 2020-08-22

2.23.0 - 2020-08-14

2.22.0 - 2020-07-31

2.21.0 - 2020-07-17

2.20.0 - 2020-07-02

2.19.0 - 2020-06-19

2.18.0 - 2020-06-05

2.17.0 - 2020-05-26

2.16.0 - 2020-05-08

2.15.2 - 2020-05-01

2.15.1 - 2020-04-28

2.15.0 - 2020-04-24

2.14.0 - 2020-04-03

2.13.0 - 2020-03-25

2.12.0 - 2020-03-06

2.11.0 - 2020-02-19

2.10.0 - 2020-01-28

2.9.3 - 2020-01-17

2.9.2 - 2020-01-16

2.9.1 - 2019-12-27

2.9.0 - 2019-12-06

2.8.1 - 2019-11-22

2.8.0 - 2019-11-14

2.7.0 - 2019-11-08

此版本放弃对 Python 3.5 的支持

2.6.0 - 2019-10-15

2.5.2 - 2019-10-04

2.5.1 - 2019-09-27

2.5.0 - 2019-09-27

2.4.0 - 2019-09-13

2.3.2 - 2019-08-23

2.3.1 - 2019-08-22

2.3.0 - 2019-08-16

2.2.0 - 2019-07-31

2.1.0 - 2019-07-08

2.0.1 - 2019-06-26

我们忽略了在 setup.py 文件中包含 python_requires=,导致 Python 2 用户错误地获得了 2.0.0 版本的软件包。这已在 2.0.1 版本中修复,并且我们已从 PyPI 中移除了 2.0.0 的文件。

2.0.0 - 2019-06-25

1.28.1 - 2019-05-13

这是由于上游配置更改而发布的小型错误修复版本。

1.28.0 - 2019-05-08

1.27.1 - 2019-04-29

1.27.0 - 2019-04-12

1.26.1 - 2019-03-29

1.26.0 - 2019-02-25

1.25.3 - 2019-01-31

1.25.2 - 2019-01-04

1.25.1 - 2018-12-15

1.25.0 - 2018-11-28

1.24.2 - 2018-11-15

1.24.1 - 2018-11-09

1.24.0 - 2018-10-26

1.23.3 - 2018-10-05

1.23.2 - 2018-09-17

1.23.1 - 2018-09-06

1.23.0 - 2018-08-30

1.22.1 - 2018-08-03

1.22.0 - 2018-06-14

1.21.8 - 2018-05-03

1.21.7 - 2018-05-02

1.21.6 - 2018-04-06

1.21.5 - 2018-03-31

1.21.4 - 2018-03-21

1.21.3 - 2018-03-08

1.21.2 - 2018-03-05

1.21.1 - 2018-02-22

1.21.0 - 2018-02-09

1.20.2 - 2017-12-07

1.20.1 - 2017-11-26

1.20.0 - 2017-11-17

1.19.3 - 2017-10-16

  • 处理 profile.identity 中的 None 情况 (GH#1456)

  • Asyncio 重写 (GH#1458)

  • 添加 rejoin 函数作为 secede 的搭档 (GH#1462)

  • 嵌套 compute (GH#1465)

  • 比较 Bokeh 版本时使用 LooseVersion (GH#1470)

1.19.2 - 2017-10-06

  • as_completed 不会阻塞已取消的 futures (GH#1436)

  • 在取消时通知等待的线程/协程 (GH#1438)

  • 默认设置 Future(inform=True) (GH#1437)

  • 将 Scheduler.transition_story 重命名为 story (GH#1445)

  • Future 默认使用 default client (GH#1449)

  • 向 Client.call_stack 添加 keys= 关键字 (GH#1446)

  • 向 worker 添加 get_current_task (GH#1444)

  • 确保 Client 在 ioloop 启动前保持异步 (GH#1452)

  • 移除 bokeh 图中“点击查看 worker 页面” (GH#1453)

  • 添加 Client.current() (GH#1450)

  • 干净处理重新启动超时 (GH#1442)

1.19.1 - 2017-09-25

  • 修复 TaskStream 图的工具问题 (GH#1425)

  • 将 profile 模块移到顶级 (GH#1423)

1.19.0 - 2017-09-24

  • 避免在消息日志中存储消息 (GH#1361)

  • fileConfig 不禁用现有 loggers (GH#1380)

  • 将 upload_file 磁盘 I/O 卸载到单独线程 (GH#1383)

  • 添加缺失的 SSLContext (GH#1385)

  • 从 sys._curent_frames 收集 worker 线程信息 (GH#1387)

  • 添加 nanny 超时 (GH#1395)

  • 如果内存使用率超过 95%,则重新启动 worker (GH#1397)

  • 使用 psutil 跟踪 workers 内存使用情况 (GH#1398)

  • 在 workers 中跟踪 scheduler 延迟时间 (GH#1400)

  • 向 profile 图添加时间滑块 (GH#1403)

  • 将 memory-limit 关键字更改为指代最大字节数 (GH#1405)

  • 添加 cancel(force=) 关键字 (GH#1408)

1.18.2 - 2017-09-02

  • 在 as_completed 中静默通过已取消的 futures (GH#1366)

  • 修复 Python 2 中的 unicode 键错误 (GH#1370)

  • 支持数字 worker 名称

  • 添加 dask-mpi 可执行文件 (GH#1367)

1.18.1 - 2017-08-25

  • 在 fire-and-forget 工作负载中清理遗忘的键 (GH#1250)

  • 处理缺失的扩展 (GH#1263)

  • 允许在 persisted 集合上进行 recreate_exception (GH#1253)

  • 向阻塞的 client 方法添加 asynchronous= 关键字 (GH#1272)

  • 将 bokeh 图限制为水平平移 (GH#1274)

  • 将 client.shutdown 重命名为 client.close (GH#1275)

  • 避免阻塞事件循环 (GH#1270)

  • 避免 Client.get_versions 的 cloudpickle 错误 (GH#1279)

  • 对 Tornado IOStream.write futures 进行 yield (GH#1289)

  • 如果在同步语句中,则假定异步行为 (GH#1284)

  • 避免关闭时的错误消息 (GH#1297), (GH#1296) (GH#1318) (GH#1319)

  • 向 get_client 添加 timeout= 关键字 (GH#1290)

  • 重新启动时遵守超时 (GH#1304)

  • 清理测试中的文件描述符和内存泄露 (GH#1317)

  • 弃用 Executor (GH#1302)

  • 向 ThreadPoolExecutor.shutdown 添加超时 (GH#1330)

  • 清理 AsyncProcess 处理 (GH#1324)

  • 允许 Python 2 scheduler 中的 unicode 键 (GH#1328)

  • 避免泄露被窃取的数据 (GH#1326)

  • 改进 nanny 启动失败时的错误处理 (GH#1337), (GH#1331)

  • 使 Adaptive 更灵活

  • 在 worker 中支持 --contact-address--listen-address (GH#1278)

  • 移除旧的 dworker, dscheduler 可执行文件 (GH#1355)

  • 如果 nanny 进程失败,则退出 workers (GH#1345)

  • 自动 pep8 和 flake (GH#1353)

1.18.0 - 2017-07-08

1.17.1 - 2017-06-14

  • 从 travis-ci 移除 Python 3.4 测试 (GH#1157)

  • 移除 ZMQ 支持 (GH#1160)

  • 修复 Python 2.7 中的 memoryview nbytes 问题 (GH#1165)

  • 重新启用 counters (GH#1168)

  • 改进 scheduler.restart (GH#1175)

1.17.0 - 2017-06-09

  • 在 scheduler 停机期间定期重新评估 worker 占用率 (GH#1038) (GH#1101)

  • 添加 AioClient asyncio 兼容客户端 API (GH#1029) (GH#1092) (GH#1099)

  • 更新 Keras 序列化器 (GH#1067)

  • 支持 TLS/SSL 连接以增强安全性 (GH#866) (GH#1034)

  • 当传递 --local-directory 时始终创建新的 worker 目录 (GH#1079)

  • 使用 joblib 前端时支持预散布数据 (GH#1022)

  • 使 workers 对 sizeof 函数的故障 (GH#1108) 和写入磁盘 (GH#1096) 更健壮

  • as_completed 添加 is_emptyupdate 方法 (GH#1113)

  • 移除 _get 协程并替换为 get(..., sync=False) (GH#1109)

  • 改进与 async/await 语法的 API 兼容性 (GH#1115) (GH#1124)

  • 添加分布式队列 (GH#1117) 和共享变量 (GH#1128) 以启用客户端间协调

  • 支持客户端到 worker 的直接散布和收集 (GH#1130) 以及散布数据时的性能增强

  • bokeh web dashboard 的样式改进 (GH#1126) (GH#1141) 并移除了外部 bokeh 进程

  • Future 和 Client 对象的 HTML 表示 (GH#1136)

  • 在 client.compute 中支持嵌套集合 (GH#1144)

  • 在异步模式下使用正常的 client API (GH#1152)

  • 移除旧的 distributed.collections 子模块 (GH#1153)

1.16.3 - 2017-05-05

  • 将 bokeh 模板文件添加到 MANIFEST (GH#1063)

  • 不要将 worker_client.get 设置为默认 get (GH#1061)

  • 清理 Client().shutdown() 时的日志记录 (GH#1055)

1.16.2 - 2017-05-03

  • 支持 async with Client 语法 (GH#1053)

  • 使用内部 bokeh server 作为默认诊断 server (GH#1047)

  • 改进 bokeh 图在空时的样式 (GH#1046) (GH#1037)

  • 支持稀疏数组的高效序列化 (GH#1040)

  • 在 worker 中优先处理新到达的工作 (GH#1035)

  • 使用 joblib 后端预散布数据 (GH#1022)

  • 使 client.restart 对 worker 故障更健壮 (GH#1018)

  • 支持在 dask-worker 或 dask-scheduler 进程中预加载模块或脚本 (GH#1016)

  • 在命令行接口中指定网络接口 (GH#1007)

  • Client.scatter 支持单个元素 (GH#1003)

  • 对所有通过 comms 的 memoryviews 使用 blosc 压缩 (GH#998)

  • 添加 concurrent.futures 兼容的 Executor (GH#997)

  • 添加 as_completed.batches 方法并返回结果 (GH#994) (GH#971)

  • 允许 worker_clients 选择性地留在线程池中 (GH#993)

  • 添加 bytes-stored 和 tasks-processing 诊断直方图 (GH#990)

  • Run 支持非 msgpack 可序列化的结果 (GH#965)

1.16.1 - 2017-03-22

  • 在 LocalCluster 中使用 inproc 传输 (GH#919)

  • 添加结构化和可查询的集群事件日志 (GH#922)

  • 使用连接池进行 worker 间通信 (GH#935)

  • 在关闭时健壮地关闭 spawned worker 进程 (GH#928)

  • Worker 死亡超时 (GH#940)

  • 在进度条中更可视化地报告异常 (GH#941)

  • 将磁盘和序列化事件渲染到任务流可视化中 (GH#943)

  • 支持 async for / await 协议 (GH#952)

  • 确保在 worker 进程中重新播种随机生成器 (GH#953)

  • 将源代码作为 zip 模块上传 (GH#886)

  • 在本地进程中重放远程异常 (GH#894)

1.16.0 - 2017-02-24

  • 客户端提交的先来先服务优先级 (GH#840)

  • 可以指定 Bokeh 内部端口 (GH#850)

  • 允许被窃取的任务从任一 worker 返回 (GH#853), (GH#875)

  • 在执行期间添加 worker 资源限制 (GH#857)

  • 通过 Channels 发送小数据 (GH#858)

  • 更好地估计 SciPy 稀疏矩阵内存成本 (GH#863)

  • 避免窃取长时间运行的任务 (GH#873)

  • 保持 NumPy 数组的 fortran 顺序 (GH#876)

  • 向 dask-scheduler 添加 --scheduler-file 关键字 (GH#877)

  • 添加 Keras 模型的序列化器 (GH#878)

  • 支持从 zip 文件上传模块 (GH#886)

  • 改进 Bokeh dashboards 的标题 (GH#895)

1.15.2 - 2017-01-27

  • 修复了具有大型 dtypes 或形状的数组被不正确压缩的错误 (GH#830 GH#832 GH#833)

  • 扩展 as_completed 以在迭代期间接受新的 futures (GH#829)

  • dask-ssh 启动工具添加 --nohost 关键字 (GH#827)

  • 支持 scheduler 关闭远程 workers,对自适应集群很有用 (:pr: 811 GH#816 GH#821)

  • 添加 Client.run_on_scheduler 方法用于在 scheduler 上运行调试函数 (GH#808)

1.15.1 - 2017-01-11

  • 与 Bokeh 0.12.4 兼容 (GH#803)

  • 如果无益,避免压缩数组 (GH#777)

  • 优化 worker 间数据传输 (GH#770) (GH#790)

  • 向 worker 添加 –local-directory 关键字 (GH#788)

  • 使 workers 能够携带自己的数据到达集群。对于 worker 离开后返回很有用 (GH#785)

  • 解决使用 local_client 时的线程安全错误 (GH#802)

  • 解决 worker 中的调度问题 (GH#804)

1.15.0 - 2017-01-02

  • Worker 主要重构 (GH#704)

  • Scheduler 主要重构 (GH#717) (GH#722) (GH#724) (GH#742) (GH#743

  • Client.get_versions 添加 check (默认为 False) 选项,以便在客户端、调度器和 worker 版本不匹配时引发错误 (GH#664)

  • Future.add_done_callback 在单独线程中执行 (GH#656)

  • 清理 numpy 序列化 (GH#670)

  • 支持 Tornado v4.5 协程的序列化 (GH#673)

  • 在 Python 2 中使用 CPickle 而非 Pickle (GH#684)

  • 在 Python 3 的 Unix 上使用 Forkserver 而非 Fork (GH#687)

  • 支持抽象资源用于每任务约束 (GH#694) (GH#720) (GH#737)

  • 添加 TCP 超时 (GH#697)

  • 向 workers 添加嵌入式 Bokeh server (GH#709) (GH#713) (GH#738)

  • 向 scheduler 添加嵌入式 Bokeh server (GH#724) (GH#736) (GH#738)

  • 为 Windows 添加更精确的计时器 (GH#713)

  • 添加 Versioneer (GH#715)

  • 支持客户端间通道 (GH#729) (GH#749)

  • Scheduler 性能改进 (GH#740) (GH#760)

  • 改进负载平衡和工作窃取 (GH#747) (GH#754) (GH#757)

  • 在 workers 上运行 Tornado 协程

  • 避免对 Pandas 数据帧进行缓慢的 sizeof 调用 (GH#758)

1.14.3 - 2016-11-13

  • 移除隐式依赖于 nodejs 的自定义 Bokeh 导出工具 (GH#655)

  • 清理 scheduler 日志记录 (GH#657)

1.14.2 - 2016-11-11

  • 在自定义序列化中支持更多 numpy dtypes, (GH#627), (GH#630), (GH#636)

  • 更新 Bokeh 图 (GH#628)

  • 改进溢写到磁盘的启发式算法 (GH#633)

  • 向任务流图添加导出工具

  • 对于非常多的帧,反转 loads 中的帧顺序 (GH#651)

  • 等待写入时添加超时 (GH#653)

1.14.0 - 2016-11-03

  • 添加 Client.get_versions() 函数,返回 scheduler、workers 和 client 的软件和包信息 (GH#595)

  • 改进 Windows 支持 (GH#577) (GH#590) (GH#583) (GH#597)

  • 显式清理 rpc 对象 (GH#584)

  • 根据已知 futures 规范化集合 (GH#587)

  • 向 map 添加 key= 关键字以指定键名 (GH#589)

  • 自定义数据序列化 (GH#606)

  • 重构 web 界面 (GH#608) (GH#615) (GH#621)

  • 允许用户在 Worker 中提供 Executor (GH#609)

  • 通过 LocalCluster 传递 Worker kwargs

1.13.3 - 2016-10-15

  • Schedulers 可以干净地让 workers 退役

  • 添加 Future.add_done_callback 用于 concurrent.futures 兼容性

  • 更新 web 界面以与 Bokeh 0.12.3 保持一致

  • 显式关闭 streams,避免竞争条件,并在 Windows 上支持更健壮的重新启动。

  • 改进 dask.dataframe 的 shuffled 性能

  • 添加自适应分配集群管理器

  • 减少处理大量 workers 时的管理开销

  • dask-ssh --log-directory . 不再出错

  • scheduler 的微性能调优

1.13.2

  • 将 dask_worker 恢复为默认使用 fork 而非 subprocess

  • Scatter 保留类型信息

  • Bokeh 总是使用 subprocess 而非 spawn

1.13.1

  • 修复 dask_worker 可执行文件的关键 Windows 错误

1.13.0

  • 将 Executor 重命名为 Client (GH#492)

  • dask-worker 添加 --memory-limit 选项,在内存不足时启用溢写到磁盘的行为 (GH#485)

  • 向 dask-worker 和 --dask-scheduler 添加 --pid-file 选项 (GH#496)

  • 添加 upload_environment 函数以分发 conda 环境。这是实验性的,未文档化,并且可能在不通知的情况下更改。 (GH#494)

  • Client.computeClient.persist 添加 workers= 关键字参数,支持使用 Dask 集合进行位置限制的工作负载 (GH#484)

  • 添加 upload_environment 函数以分发 conda 环境。这是实验性的,未文档化,并且可能在不通知的情况下更改。 (GH#494)

    • client.run 函数添加可选的 dask_worker= 关键字,该关键字提供 worker 或 nanny 对象

    • Client.run 添加 nanny=False 关键字,允许在 nannies 以及普通 workers 上执行任意函数

1.12.2

此版本添加了一些新功能并移除了死代码

  • 在 scheduler 上发布和共享数据集供多个客户端使用 (GH#453)。参见 发布数据集

  • 从其他任务启动任务 (实验性) (GH#471)。参见 从任务启动任务

  • 移除未使用代码,特别是 Center 对象和旧的客户端函数 (GH#478)

  • Executor()LocalCluster() 现在在没有 Bokeh 的情况下也能健壮运行 (GH#481)

  • 从依赖项中移除了 s3fs 和 boto3。这些已移至 Dask 中。

1.12.1

此版本主要是错误修复版本,修复了上次大型重构引入的问题。

  • 修复先前重构引入的问题
    • 确保客户端之间的幂等性

    • 对永久丢失分散数据的场景进行压力测试

  • IPython 修复
    • 为 Executor 添加 start_ipython_scheduler 方法

    • 为 worker 添加 %remote magic 命令

    • 清理代码和测试

  • 连接池以保持复用并减少打开文件句柄的数量

  • 重新实现工作窃取算法

  • 支持取消元组键,例如在 dask.arrays 中出现的元组键

  • 开始针对 worker 中可能多余的数据进行同步

  • 改进 bokeh 图表的样式
    • 添加跟踪字节数的内存图表

    • 使进度条更紧凑并对齐颜色

    • 添加 workers/ 页面,包含 worker 表、栈/处理图和内存图

  • 添加此版本说明文档

1.12.0

此版本主要是一个重构版本。内部结构发生了显著变化,但新功能不多。

  • 对调度器进行重大重构,以使用 transitions 系统

  • 调整协议以遍历复杂消息,寻找大型字节串

  • 添加 dask-submit 和 dask-remote

  • 重构 HDFS 写入以与 dask 库中的更改保持一致

  • 当连接断开或调度器失败时,Executor 会重新连接到调度器

  • 支持 sklearn.external.joblib 和普通的 joblib