Как не отправлять dask задачи внутри задач главному планировщику - PullRequest
1 голос
/ 11 февраля 2020

Документация запуска задач показывает, что поведение по умолчанию dask.compute внутри рабочего dask - запуск задач на главном планировщике.

Мое желание НЕ запускаться на главном планировщик. Моя задача состоит в том, чтобы выполнить два шага: использовать двоичный файл не python для обработки 0,1-1,0 ТБ данных, скопированных на локальный диск, а затем использовать dask для преобразования и записи данных в хранилище zarr. Двоичный файл является многопоточным, и я также хотел бы использовать dask локально в многопроцессорном или многопоточном локальном режиме.

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

Является ли это жизнеспособной моделью, и как бы я назвал compute (distributed.Client().compute, похоже, не работает )? Существуют ли другие подходы, в которых я могу запускать свой двоичный файл исключительно на компьютере и запускать параллельную запись zarr с помощью задач?

1 Ответ

0 голосов
/ 16 февраля 2020

При вызове dask.compute вы можете указать опцию планировщика =, например:

dask.compute(x, y, scheduler="processes")

См. https://docs.dask.org/en/latest/scheduling.html для получения дополнительной информации

...