Есть ли у ipyparallel способ убить движки после завершения?

Я выполняю работу в кластере SLURM с около 1000 задач с использованием балансировки нагрузки. Некоторые задачи занимают значительно больше времени, чем другие.

В идеале я бы выделил 1000 процессоров с помощью ипенгинов и использовал бы async_map распределить рабочие места. Тем не менее, это означает, что, если 300 задач завершатся почти сразу, а остальные 700 будут занимать часы, у меня будет 300 выделенных процессоров, которые ничего не делают. Я хотел бы выпустить их для использования другими в кластере.

Есть несколько ручных способов определить, что процессор больше не используется, например, прикоснуться к файлу после запуска задачи и проверить журнал движка, чтобы убедиться, что он по-прежнему активен, и выполнить некоторые операции учета. Тогда я убил бы неактивные двигатели, используя subprocess позвоните, как только я уверен, что все рабочие места были распределены. Тем не менее, мне интересно, есть ли более простой метод в ipyparallel.

(Обратите внимание, что в некоторых случаях я не смогу 1:1 отобразить задачи на движки, поэтому я бы хотел пройти через балансировщик нагрузки)

0 ответов

Другие вопросы по тегам