Ожидание внешних зависимостей в dask

Контекст: я использую настраиваемые графики dask для управления и распределения вычислений.

Проблема: некоторые задачи включают чтение файлов, созданных вне dask и не обязательно доступных во время вызова dask.get(graph,result_key).

Вопрос. Недопустимо, чтобы задачи ввода-вывода ждали файлов, так как это заблокировало бы рабочие процессы. Есть ли (или какой был бы) хороший способ позволить dask ждать, пока файлы станут доступными, и только затем выполнять задачи ввода-вывода?

Большое спасибо за любые мысли!


person malbert    schedule 20.05.2019    source источник


Ответы (1)


Похоже, вы, возможно, захотите использовать некоторые функции Dask, работающие в режиме реального времени, описанные здесь.

Вы можете рассмотреть возможность создания задач, использующих secede и rejoin или используйте программирование в стиле асинхронного ожидания и запускайте задачи только после того, как ваш клиент процесс замечает, что они существуют.

person MRocklin    schedule 23.05.2019
comment
Отлично, я не знал об этой функции. В основном задача, ожидающая файла, будет содержать secede(), цикл ожидания, а затем rejoin(). Если я правильно понимаю, это заставляет задачу ждать файл в административном потоке, тем самым не блокируя пул рабочих потоков. Спасибо! - person malbert; 09.07.2019