DASK上的进程池

问题描述 投票:0回答:2

我是DASK的新手。

我可以使用client.map(funct_name,iterator)提交10个任务,其中迭代器是一个包含10个元素的列表。

现在,我希望提交下一个任务,当前任提交的10个任务的任何人完成时,让我们说第11个任务。

我知道在python中有一些叫做进程池的东西。但是我希望使用DASK实现类似进程池的功能。

有人请指导我使用DASK流程池。

python-2.7 dask dask-distributed
2个回答
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))

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(...)
© www.soinside.com 2019 - 2024. All rights reserved.