В вашем исходном коде будущее, сгенерированное submit
, не было сохранено в переменной, и после завершения вашей функции sub
на нее не было ссылки. Поэтому Dask заметит, что ни один клиент больше не заинтересован в этом будущем, и он будет очищен из системы - возможно, он уже запущен, и память о результате будет освобождена.
Это ожидаемое поведение, и решение в вашем коде, какие фьючерсы имеют ссылки на них, является фундаментальной концепцией управления памятью в системе, см. https://distributed.dask.org/en/latest/memory.html#clearing -данные
Я подозреваю, что когда вы изначально вызывался submit
, но не в функции, ваша реплика сохраняла ссылку на результат - если бы вы добавили ;
в конец строки для подавления вывода, вы бы увидели то же поведение, что и вызов sub
.