Какое простое решение для распределения команд / задач в сети Linux?
Возможный дубликат:
Linux - запуск одной и той же команды сразу на нескольких машинах
Вот ситуация:
- У нас есть лаборатория, состоящая из пятнадцати четырехъядерных машин, каждая из которых работает под управлением Ubuntu Linux.
- Есть программное обеспечение для кодирования видео, которое мне нужно запустить, но одна работа (то есть одно видео с одной конфигурацией) занимает очень много времени (пару часов).
- Конфигураций примерно столько же, сколько машин (около 15) и около 20 видео.
Поэтому я подумал о том, чтобы видео было доступно через централизованное хранилище, но пусть каждая машина запускает процесс кодирования.
В самой простой форме используемая команда выглядит примерно так:
./encode -d default.conf -f local.conf -i inputFile.yuv
Теперь возникает вопрос: существует ли какое-либо программное обеспечение, которое я мог бы использовать для простого развертывания этих задач на лабораторных компьютерах? Я думал о:
- Наличие одного мастера, который отправляет задания, например: "Скажите машине 1 запустить"
/home/user/encode -i input1.yuv
, затем/home/user/encode -i input2.yuv
и так далее " - Возможность увидеть, какой узел в данный момент работает над какой задачей и как долго
- Возможность остановить задачу или повторить попытку в случае неудачи
Я не ограничен в CLI, также может быть приложение с графическим интерфейсом. Есть идеи?
2 ответа
Подумайте об установке TORQUE. Его планировщик не самый лучший, но его более чем достаточно для такого использования. Вы можете заменить планировщик на Maui, если вам понадобятся дополнительные функции позже.
Единственная функция из вашего списка, которую пропускает TORQUE, - это автоматическая повторная попытка задания при неудаче. Но вы должны быть в состоянии написать это на сервере TORQUE, проверив вывод его qstat
Команда, чтобы узнать, какие задания выполняются, и содержимое вашей выходной папки, чтобы узнать, что закончено.
И если вам нужно более масштабное решение с большим количеством опций и функций, рассмотрите Sun Grid Engine (SGE), теперь известный как Oracle Grid Engine.