Пул процессов на DASK - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в DASK.

Я могу отправить 10 задач, используя client.map (имя_функции, итератор), где итератор - это список, содержащий 10 элементов.

Теперь,Я хочу представить следующее задание, скажем, 11-е, когда кто-либо из ранее поданных 10 заданий будет выполнен.

Я знаю, что в Python есть что-то, что называется пулом процессов.Но я хочу реализовать что-то вроде пула процессов с помощью DASK.

Кто-то, пожалуйста, подскажите мне, как пулы процессов DASK.

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Вы можете посмотреть на объект 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(...)
0 голосов
/ 01 марта 2019

Самое простое, что вы можете сделать, это использовать 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))
...