Я работаю над школьной дипломной работой. Основная цель - создать веб-приложение, в котором зарегистрированные пользователи могли бы видеть свободные и занятые узлы, включать и выключать их, видеть, какой процесс они запускают и т. Д. Выяснилось, что я мог бы сделать что-то вроде этого - написать некоторый демон cron, который будет запускать каждые 30 секунд или около того, и он может запускать утилиту ping для каждого узла, чтобы узнать, включен он или выключен, а затем записывать результаты в какой-либо файл. Затем из своего веб-приложения (я буду писать на PHP) я смогу прочитать информацию. Будет ли это хорошее решение? Как бы вы посоветовали мне это сделать? И, наконец, есть ли какие-либо существующие решения (возможно, это не определенно на основе ewb) для управления узлами кластера?
Раньше я использовал Ganglia для мониторинга доступности узлов и нагрузки. Он не скажет вам, какие задания выполняются, но покажет состояние вашего кластера.
Nagios - это еще что-то, что я использовал со своими кластерами, однако это немного больше, чем просто мониторинг кластера. Он может отслеживать процессы, дисковое пространство, память и все, что вы можете написать или найти сценарий. Это также веб-интерфейс.
Что касается планировщиков заданий, есть несколько вариантов в зависимости от того, как вы хотите настроить вещи. Возможные варианты включают, но не ограничиваются: OpenPBS, TORQUE, PBSPro, Maui Cluster Scheduler, SLURM, Sun Grid Engine. Это все, что мне известно о центрах, которые в настоящее время используются для планирования высокопроизводительных вычислений. В Википедии есть список, но я не верю, что все, что он перечислено, относится к планированию HPC. http://en.wikipedia.org/wiki/Job_scheduler
Места:
Ганглии http://ganglia.sourceforge.net/
Nagios http://www.nagios.org/
Проверять, выписываться DRMAA. Это общий API для отправки заданий и контроля, который становится стандартом для менеджеров рабочих нагрузок. Что касается управления самими узлами, это сильно зависит от системы, которую вы используете. Большинство из них имеют какой-то API, который вы можете использовать для взаимодействия с ними и выполнения тех же операций, что и с инструментами командной строки.
Ваш проект действительно интересный, желаю удачи.