объединение tqdm с отложенным выполнением с помощью dask в python



tqdm и dask - это удивительные пакеты для итераций в python. В то время как tqdm реализует необходимый индикатор выполнения, dask реализует многопоточную платформу, и они оба могут сделать итерационный процесс менее разочаровывающим. И все же ... мне трудно совместить их вместе.



Например, следующий код реализует отложенное выполнение в dask, с индикатором выполнения tqdm.trange. Дело в том, что так как delayed выполняется быстро, индикатор выполнения завершается немедленно, в то время как реальные вычислительные усилия выполняются в течение части compute.



from dask import delayed,compute
from tqdm import trange
from time import sleep

ct = time()
result= []

def fun(x):
sleep(x)
return x

for i in trange(10):
result.append(delayed(fun)(i))

print compute(result)


Как я могу прикрепить индикатор выполнения к фактическому выполнению команды compute?

523   1  

1 ответ:

Рассмотрим индикатор выполнения Даска

from dask.diagnostics import ProgressBar

with ProgressBar():
    compute(result)

Постройте собственную диагностику

Вы можете использовать эту архитектуру плагинов для получения сигнала в конце каждой задачи. http://dask.pydata.org/en/latest/diagnostics.html

Вот пример того, как кто-то делает именно это: https://github.com/tqdm/tqdm/issues/278

Comments

    Ничего не найдено.