Промежуточные результаты Dask

У меня есть небольшое пользовательское приложение Dask (~ 20 узлов в DAG). Я хотел бы иметь возможность каким-то образом сохранить все промежуточные результаты функций для будущей проверки, поскольку иногда мы хотим знать, почему мы пришли к нашему окончательному ответу. Есть ли какие-либо хорошие шаблоны для этого в Dask, кроме отправки результатов в Redis (или тому подобное) непосредственно перед возвратом функции?


person feik    schedule 24.09.2018    source источник


Ответы (1)


Вы можете вычислить промежуточные результаты вместе с окончательными.

a = dask.delayed(inc)(1)
b = dask.delayed(inc)(2)
c = dask.delayed(add)(a, b)

dask.compute(c)  # only return c, releasing a and b as soon as possible

dask.compute(a, b, c)  # return all three
person MRocklin    schedule 25.09.2018
comment
Сохранит ли dask промежуточные результаты от c, чтобы вернуть a и b? Или он будет вычислять a, b и, c независимо, дублируя вычисление для a и b? - person feik; 05.10.2018
comment
Он сделает разумную вещь, объединит все графы задач вместе, выполнит этот граф и вернет желаемые результаты. - person MRocklin; 05.10.2018