Python 3.x 在提交所有任务之前,如何阻止任务的执行?
我正在构建一个框架,其中每个任务都使用submit提交给用户提供的dask客户端,如下所示:Python 3.x 在提交所有任务之前,如何阻止任务的执行?,python-3.x,dask,dask-distributed,Python 3.x,Dask,Dask Distributed,我正在构建一个框架,其中每个任务都使用submit提交给用户提供的dask客户端,如下所示: future=client.submit(我的函数,*args) 有些函数对以前的将来有多个依赖关系,最深的深度约为10-15个任务。所有这些功能都使用submit功能提交给客户端 然而,我发现对于大量的任务,比如说几千个以上的任务,这种方法倾向于挂起调度程序,因为计算和任务提交都是同时进行的。是否有一种方法可以延迟地向客户“提交”某些内容,这样我就可以告诉客户仅在提交每个任务后执行 您可以使用das
future=client.submit(我的函数,*args)
有些函数对以前的将来有多个依赖关系,最深的深度约为10-15个任务。所有这些功能都使用submit
功能提交给客户端
然而,我发现对于大量的任务,比如说几千个以上的任务,这种方法倾向于挂起调度程序,因为计算和任务提交都是同时进行的。是否有一种方法可以延迟地向客户“提交”某些内容,这样我就可以告诉客户仅在提交每个任务后执行 您可以使用dask.delayed接口,该接口与
客户机.submit基本相同,但比较懒惰
然而,提交几千个任务不应该对调度程序造成太大的负担。如果您的任务不包含大量元数据,那么我预计开销大约为1秒
我如何告诉延迟注释具体使用调用我的函数的作用域中可用的客户端?您可以在dask.config中管理调度程序。看见但是,如果您只有一个客户机(常见情况),那么默认情况下将使用该客户机,因此您无需担心它。