我是DASK的新手。
我可以使用client.map(funct_name,iterator)提交10个任务,其中iterator是一个包含10个元素的列表。
现在,我想提交下一个任务,比方说先前提交的10个任务中的任何一个都完成了,那就说第11个任务。
我知道python中有一种叫做进程池的东西。但是我想使用DASK来实现诸如进程池之类的东西。
请有人指导我进行DASK进程池。
答案 0 :(得分:1)
您最容易做的就是在提交新作品之前使用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))
答案 1 :(得分:0)
您可能要在这里查看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(...)