Вам нужна Grid / HPC Framework для управления вашей распределенной инфраструктурой и запуска заданий.
В Unix / Linux есть две системы, которые могут быть вам полезны. Портативные пакетные системы (PBS) или Condor
Как вы управляете всеми этими
задачи / работы?
И у Кондора, и у PBS есть основная потребность действовать как рецептор каждой работы / задачи, для каждой работы / задачи вы можете связать уровень приоритета и дискриминаторов. Администратор кластера устанавливает правила на основе этих дискриминаторов для планирования заданий.
как вы распространяете
задачи между машинами?
Condor или PBS сделают это за вас, вам нужно только отправить задание на главный узел и указать приоритет, входы и выходы и т. Д.
Вы можете периодически проверять, когда задание завершено, подписываться на уведомления с помощью различных механизмов или делать что-то вроде job.wait()
, чтобы заблокировать его до конца.
как ты
отслеживать работу / машины в
процесс?
И PBS, и Condor имеют одинаковые команды top
для вывода списка задач, которые находятся в очереди, ожидают, выполняются или отменяются. У них также есть утилиты для остановки или отмены задания, если процесс позволяет делать снимки.
Для большого кластера я советую попробовать Кондор. Это было целую вечность, чтобы решать проблемы точно так же, как они у вас. Здесь есть несколько примеров для Condor + Python
Другие более поздние решения, которые следует рассмотреть:
- Celery распределенная очередь задач для Python.
- DiscoProject распределенная вычислительная среда, основанная на парадигме MapReduce.