我是DASK的新手。
我可以使用client.map(funct_name,iterator)提交10个任务,其中迭代器是一个包含10个元素的列表。
现在,我希望提交下一个任务,当前任提交的10个任务的任何人完成时,让我们说第11个任务。
我知道在python中有一些叫做进程池的东西。但是我希望使用DASK实现类似进程池的功能。
有人请指导我使用DASK流程池。
您可以做的最简单的事情是在提交新作品之前使用wait
futs = client.map(funct_name, iterator)
distributed.wait(futs)
out = client.submit(eleventh, args)
但是,如果你想在前十个飞行中提交你的新作品,但让它自动等到完成所有工作,你可以构建一个假的任务,显然取决于以前的工作,但实际上并没有使用他们
futs = client.map(funct_name, iterator)
def run_eleventh(args, deps):
return eleventh(args)
out = client.submit(run_eleventh, (args, futs))
您可能想在这里查看as_completed
对象:
http://docs.dask.org/en/latest/futures.html#waiting-on-futures
from dask.distributed import as_completed
futures = client.map(score, x_values)
for future in as_completed(futures):
...
client.submit(...)