Да, ваша интуиция здесь верна.Большинство коллекций Dask (array, bag, dataframe, delayed) по умолчанию ленивы.Нормальные операции ленивы, в то время как вызов compute фактически запускает выполнение.
Это важно как для того, чтобы мы могли выполнить небольшую оптимизацию, так и для поддержки выполнения с небольшим объемом памяти.Например, если бы вам нужно было вызвать
x = da.ones(1000000000000)
total = x.sum()
И если бы мы сразу же запустились, то было бы время, когда мы думали, что вы хотите вычислить полный массив, что было бы прискорбно, если бы вы работали на одной машине,Но если мы знаем, что вы хотите только total.compute()
, тогда мы можем вычислить эту вещь в гораздо меньшей памяти.