Как составить расписание заданий dask_jobqueue в DASK вместо одновременных? - PullRequest
1 голос
/ 15 мая 2019

При чтении Dask-Jobqueue (https://jobqueue.dask.org/en/latest/), и при тестировании на нашем кластере SLURM кажется, что когда вы устанавливаете cluster.scale(n) и создаете client = Client(cluster), ни одно из ваших заданий не может запускаться, пока всеn ваших заданий могут быть запущены.

Предположим, у вас есть 999 заданий для запуска и кластер с 100 узлами или слотами; еще хуже, предположим, что другие люди совместно используют кластер, и, возможно, некоторые из них имеютдолгосрочные задания. Администраторам иногда необходимо выполнять обслуживание некоторых узлов, чтобы они добавляли и удаляли узлы. Вы никогда не знаете, сколько параллелизма вы сможете получить. Вы хотите, чтобы планировщик кластера просто выполнял 999 заданий (вslurm, они будут отправлены через sbatch), запускаются в любом порядке на любых доступных узлах, сохраняют результаты в общем каталоге и имеют зависимое задание (в slurm, которое будет sbatch --dependency=) обрабатывать общий каталог послевсе 999 заданий завершены. Возможно ли это как-то с помощью DASK?

Кажется фундаментальным ограничением архитектуры, что все задания должны выполнятьсяпараллельно, и пользователь должен указать степень параллелизма.

1 Ответ

0 голосов
/ 18 мая 2019

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

...