MyQueue: интерфейс командной строки и Python для управления заданиями HPC
MyQueue отправляет и контролирует вычислительные задания через инструмент командной строки и Python API, обрабатывая автоматические перезапуски для тайм-аутов и сбоев из-за нехватки памяти. Созданный Дж. Дж. Мортенсеном и командой разработчиков MyQueue для utilities-tools, инструмент объединяет взаимодействие с SLURM, PBS и LSF, постоянно отслеживает задания с помощью SQLite и поддерживает рабочие процессы на основе папок и виртуальные окружения Python. Он нацелен на исследователей и инженеров, которые запускают множество кластерных или локальных заданий и нуждаются в автоматической повторной отправке и простом отслеживании.
Что делает MyQueue на практике?
MyQueue действует как интерфейс для HPC планировщиков, принимая заявки через команду mq submit или Python API, затем синхронизируя локальное отслеживание задач с удаленными планировщиками. Он записывает завершенные, неудачные и выполняющиеся задачи в хранилище SQLite на основе папок и может работать с локальными машинами или удаленными кластерами, которые используют SLURM, PBS или LSF. Входными данными является скрипт задания или Python задача; выходными данными является состояние очереди, видимое через mq list.
Насколько надежна автоматическая повторная отправка для неудачных заданий?
Приложение автоматически перезапускает задачи, которые не удались из-за ограничения по времени или исчерпания памяти, корректируя ресурсы при повторной попытке в соответствии с предоставленной логикой. Это поведение уменьшает количество ручных повторных попыток, увеличивая запрашиваемые ресурсы после определенных признаков неудачи. Постоянное отслеживание сохраняет предыдущие попытки, так что вы можете просмотреть историю неудач перед принятием повторной отправки. Логика повторной отправки нацелена на ошибки, связанные с ресурсами, а не на произвольные неудачи.
Безопасно ли использовать на производственных кластерах?
MyQueue не требует отдельной базы данных или прав администратора и хранит состояние локально с помощью SQLite и папок, что делает операции прозрачными. Он взаимодействует с планировщиками, используя их родные команды, поэтому зависит от модели разрешений планировщика для отправки и отмены заданий. Дизайн инструмента избегает написания скрытых системных служб; он работает из пользовательской среды и сохраняет записи заданий в рабочей папке.
Нужны ли мне технические знания для его запуска?
Установка требует среды Python (Python 3.9 или новее) и установки pip, а работа использует команды командной строки или предоставленный API. Обычные пользователи, не знакомые со скриптами заданий или виртуальными средами, столкнутся с кривой обучения, поскольку рабочий процесс ожидает описания заданий планировщика и активации среды. Исследователи и инженеры данных, которые уже подготавливают скрипты заданий и виртуальные среды, найдут, что это соответствует существующим практикам.
Кто должен принять MyQueue и почему
MyQueue подходит для исследователей и инженеров, которые отправляют множество кластерных или локальных заданий и хотят автоматическую повторную отправку в случае сбоев, связанных с ресурсами; это снижает ручную работу по повторным попыткам, сохраняя историю заданий в локальной папке на основе SQLite. Ожидайте рабочий процесс с использованием командной строки или скриптов и некоторую первоначальную настройку Python и виртуальных окружений. Рекомендуется.