Dask с планировщиком HTCondor - PullRequest
       26

Dask с планировщиком HTCondor

0 голосов
/ 26 ноября 2018

Фон

У меня есть конвейер анализа изображений с распараллеленными шагами.Трубопровод находится в python, а распараллеливание контролируется dask.distributed.Минимальная настроенная обработка имеет 1 планировщик + 3 рабочих с 15 процессами каждый.На первом коротком шаге анализа я использую 1 процесс / рабочий, но всю оперативную память узла, затем на всех других этапах анализа используются все узлы и процессы.

Проблема

Администратор установитHTCondor как планировщик для кластера.

Thought

Для того, чтобы мой код работал на новой установке, я планировал использовать подход, показанный в руководстве dask для SGE , поскольку кластер имеетфайловая система с общей сетью.

# job1 
# Start a dask-scheduler somewhere and write connection information to file
qsub -b y /path/to/dask-scheduler --scheduler-file /path/to/scheduler.json

# Job2
# Start 100 dask-worker processes in an array job pointing to the same file
qsub -b y -t 1-100 /path/to/dask-worker --scheduler-file /path/to/scheduler.json

# Job3 
# Start a process with the python code where the client is started this way
client = Client(scheduler_file='/path/to/scheduler.json')

Вопрос и совет

Если я правильно понял с этим подходом, я начну планировщик, рабочих и анализ как независимые задания (различные HTCondor представляют файлы).Как я могу убедиться, что порядок выполнения будет правильным?Есть ли способ, которым я могу использовать тот же подход обработки, который я использовал раньше, или будет более эффективным, чтобы перевести код для лучшей работы с HTCondor?Спасибо за помощь!

1 Ответ

0 голосов
/ 16 августа 2019

Поддержка HTCondor JobQueue объединена (https://github.com/dask/dask-jobqueue/pull/245)) и теперь должна быть доступна в Dask JobQueue (HTCondorCluster(cores=1, memory='100MB', disk='100MB'))

...