Как включить правильное кражу работы в dask.distributed при использовании ограничений задач / рабочих ресурсов?

Контекст

Я использую dask.distributed для распараллеливания вычислений на разных машинах. Поэтому у меня есть dask-worker, работающие на разных машинах, которые подключаются к dask-scheduler, на который я могу затем отправлять свои собственные графики вместе с необходимыми ключами.

Из-за ограничений сетевого монтирования мои входные данные (и выходное хранилище) доступны только для подмножества машин («хосты ввода-вывода»). Я пытался справиться с этим двумя способами:

  1. все задачи, задействованные в операциях ввода-вывода, ограничены хостами ввода-вывода (они могут выполняться только на рабочих процессах, которые работают на машинах, имеющих доступ к данным), а задачи, не связанные с вводом-выводом, ограничиваются узлами ввода-вывода.
  2. все задачи, участвующие в операциях ввода-вывода, привязаны к рабочим, предоставляющим ресурс 'io' (узлы ввода-вывода), а задачи, не связанные с вводом-выводом, привязаны к рабочим на узлах без ввода-вывода, которые обеспечивают вычисление ресурса '.

Идея, лежащая в основе запрета выполнения задач, не связанных с вводом-выводом, на узлах ввода-вывода состоит в том, чтобы убедиться, что их рабочие процессы доступны для задач ввода-вывода.

Проблема

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

Прочитав о том, как задачи распределяются между рабочими, я обнаружил, что кража работы, похоже, намеренно отключена для ограниченных задач (http://distributed.readthedocs.io/en/latest/work-stealing.html). Похоже, это также применимо к структуре ресурсов.

Вопрос

Есть ли хороший способ совместить ограничения задач с кражей работы?


person malbert    schedule 12.09.2017    source источник
comment
Это хорошая оценка ситуации и справедливый момент. Я рекомендую открыть проблему GitHub, чтобы отслеживать ее в долгосрочной перспективе.   -  person MRocklin    schedule 12.09.2017
comment
Спасибо! Я открою вопрос на GitHub по этой теме.   -  person malbert    schedule 13.09.2017
comment
Ссылка на проблему Github   -  person gies0r    schedule 17.05.2020
comment
И объединенный PR: github.com/dask/distributed/pull/3069. Кража работы с ресурсами вроде теперь работает (пока не пробовал)!   -  person malbert    schedule 18.05.2020