首页 > 解决方案 > dask分布式等待(未来)与future.result()之间的区别?

问题描述

在 Dask 分布式集群中等待未来完成,这两个 API 有什么区别?有吗?

等待:https ://docs.dask.org/en/latest/futures.html#waiting-on-futures

结果():tttps://docs.dask.org/en/latest/futures.html#distributed.Future.result

如果有任何区别,在结果可用之前阻止更有效的方法是什么?

谢谢!

标签: daskdask-distributed

解决方案


wait阻止进一步执行,直到期货完成,一旦完成,代码就会继续。result将未来的结果从工作人员传输到客户端计算机。future在大多数情况下,在客户需要他们之前与工人一起离开可能更有效。

例如,假设您正在使用一台具有 10GB 内存的小型笔记本电脑协调计算,该笔记本电脑连接到一个集群,该集群具有每个内存为 50GB 的工作人员。如果您正在处理的数据在 20GB 左右,那么工作人员进行计算是没有问题的,但是如果您尝试使用.result()只是为了等待执行完成,那么工作人员将尝试向您发送 20GB 的数据,这将使您的笔记本电脑会话崩溃。


推荐阅读