python-3.x - 如何在所有任务都提交之前阻止任务的执行?
问题描述
我正在构建一个框架,其中每个任务都使用提交提交给用户提供的 dask 客户端,如下所示:
future = client.submit(my_func,*args)
一些函数对以前的 future 有多个依赖关系,最深的深度约为 10-15 个任务深度。所有这些功能都使用该功能提交给客户端submit
。
但是,我发现对于大量任务,比如几千个以上,这种方法往往会挂起调度程序,因为计算和任务提交是同时发生的。有没有办法以延迟的方式向客户“提交”某些东西,以便我可以告诉客户只有在提交每个任务后才执行?
解决方案
您可以使用 dask.delayed 接口,该接口与 基本相同client.submit
,但比较懒惰。
https://docs.dask.org/en/latest/delayed.html
然而,提交几千个任务对调度器来说不应该有那么大的负担。如果您的任务不包含大量元数据,那么我预计开销约为一秒钟。
推荐阅读
- tensorflow - 如何知道已经进行了哪些增强 tf.image.stateless_random_flip_up_down 或类似的 API
- java - 将数据从mysql内部的json拉到java
- go - 构建 golang 二进制文件的 terraform 模块的 Go mod 问题
- c# - 动态 Linq 从列表中选择
> - select - 我已经从 excel VBA 打开了一个 PowerPoint 演示文稿,现在我想选择幻灯片 5,我该怎么做?我默认选择的幻灯片编号是 1. Want toGoTo5
- node.js - 尝试查找文件 ID 时创建文件夹返回未定义
- react-native - 使用反应查询反应本机使用效果 es-lint 错误
- javascript - Heroku 部署了我的不和谐机器人,但它的命令不起作用
- flutter - Flutter:如何在streamSubscription.listen onData中返回一个widget,这是无效的
- r - 在 gganimate 上订购时间序列 geom_bar