Dask: какую переменную функции лучше всего выбрать для visualize () - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь понять, что Dask откладывается более глубоко, поэтому я решил поработать с примерами здесь .Я изменил часть кода, чтобы отразить, как я хочу использовать Dask (см. Ниже).Но результаты отличаются от того, что я ожидал, т.е.кортеж против списка.Когда я пытаюсь применить '.visualize ()', чтобы посмотреть, как выглядит график выполнения, я ничего не получаю.

Я работал со всеми примерами в 'delayed.ipynb', и все они работают должным образом, включая все визуализации.,Затем я изменил цикл for для одного примера:

for i in range(256):
    x = inc(i)
    y = dec(x)
    z = add(x, y)
    zs.append(z)

для вызова функции, использующей понимание списка.Результатом является изменение исходного рабочего примера.

%%time
import time
import random
from dask import delayed, compute, visualize

zs = []

@delayed
def inc(x):
    time.sleep(random.random())
    return x + 1

@delayed
def dec(x):
    time.sleep(random.random())
    return x - 1

@delayed    
def add(x, y):
    time.sleep(random.random())
    return x + y

def myloop(x):
    x.append([add(inc(i), dec(inc(i))) for i in range(8)])
    return x

result = myloop(zs)
final = compute(*result)
print(final)

Я попытался распечатать «результат» (вызов функции), который предоставляет ожидаемый список вызовов с задержкой, но когда я печатаю результаты «вычисления»Я неожиданно получаю желаемый список как часть кортежа.Почему я не получаю просто список?

Когда я пытаюсь «визуализировать» график выполнения, я вообще ничего не получаю.Я ожидал увидеть столько узлов, сколько есть в сгенерированном списке.

Я не думал, что внес какие-либо существенные изменения в пример, так что я не понимаю?

1 Ответ

0 голосов
/ 18 мая 2019

Функция visualize имеет ту же сигнатуру вызова, что и compute.Так что если ваш compute(*result) звонок работает, попробуйте visualize(*result)

...