dask - 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
如果有任何区别,在结果可用之前阻止更有效的方法是什么?
谢谢!
解决方案
wait
阻止进一步执行,直到期货完成,一旦完成,代码就会继续。result
将未来的结果从工作人员传输到客户端计算机。future
在大多数情况下,在客户需要他们之前与工人一起离开可能更有效。
例如,假设您正在使用一台具有 10GB 内存的小型笔记本电脑协调计算,该笔记本电脑连接到一个集群,该集群具有每个内存为 50GB 的工作人员。如果您正在处理的数据在 20GB 左右,那么工作人员进行计算是没有问题的,但是如果您尝试使用.result()
只是为了等待执行完成,那么工作人员将尝试向您发送 20GB 的数据,这将使您的笔记本电脑会话崩溃。
推荐阅读
- ffmpeg - ffmpeg 每 15 秒下降一次
- amazon-web-services - 当我们在没有 -it 的情况下触发 docker run 命令时如何运行 bash?
- javascript - 尝试以表格形式显示统计信息,不断收到“警告:validateDOMNesting(...):”错误
- python - 使用 numpy 反函数时 Numba 返回错误
- node.js - 使用 Cheerio 和 node.js 从 span 获取文本
- ios - 网站如何推荐应用
- html - 如何在 HTML 输入中添加零?
- python - 浏览 Github 存储库
- c++ - 在 C++ 中实现类型列表
- python - 比较python中的两个列表并将结果保存在单独的列表中