假设我有一个延迟函数,它执行某个任务,但它需要一个dict
来存储在每个 dask worker 中读取和修改的中间键/值对。
是否可以使用delayed
或其他机制在工作线程之间共享缓存字典?
我似乎找不到有关执行此操作的任何文档。
你可能会使用演员来实现你想要的东西——请注意,这些演员被标记为"实验性",并没有看到太多的用处。数据结构将存储在一个特定的工作线程上,其他工作线程将与其通信以影响更改。因此,如果工人有可能倒下,你就会失去结果。
当然,您可以将任务与任何外部键/值存储连接起来:集群内的东西,如redis甚至共享文件系统,或外部的东西,如云存储。
有多种方法可以在工作人员之间协调数据。 我建议看看 Dask 的协调原语