Я работаю с управляемым SLURM кластером высокопроизводительных вычислений, содержащим 1 управляющий узел и 34 вычислительных узла, и, поскольку текущая система не совсем стабильна, я ищу рекомендации или передовые методы построения такого кластера таким образом, чтобы он становится более стабильным и безопасным. И для ясности, я ищу не подробные ответы об управлении ресурсами или, возможно, дополнительные инструменты, а советы по самой базовой настройке (см. «Вопрос» ниже).
Моя текущая настройка
1 узел управления
На этом компьютере установлен slurm в / usr / local / slurm и работает демон slurmctld. Полный каталог slurm (включая все исполняемые файлы и slurm.conf) будет экспортирован.
34 вычислительных узла
Эти машины монтируют экспортированный каталог slurm с управляющего узла в / usr / local / slurm и запускают демон slurmd.
Я не использую никаких узлов управления резервным копированием.
Если наш управляющий узел потеряется, всегда кажется вопросом удачи, выживет ли текущее задание или нет, поэтому я ищу способ создать более стабильную настройку.
Возможные проблемы с текущей настройкой
1) Общий каталог slurm. Я не смог найти в сети ничего, если это действительно хорошая или плохая практика, но поскольку конфигурационный файл slurm должен быть одинаковым на всех машинах, я подумал, что могу также поделиться полной установкой slurm. Но, конечно, если вычислительный узел потеряется, все файлы тоже станут недоступны.
2) Отсутствующий резервный узел управления. Для этого требуется общий каталог NFS, в котором можно сохранить текущее состояние. Возникает вопрос, где должен находиться этот каталог? Конечно, нет смысла ставить его на контрольном узле, но должен ли он быть на резервном контрольном узле? Или на совершенно другой машине?
Вопрос
Итак, есть ли какие-то рекомендации, которым нужно следовать при создании кластера HPC? Возникает вопрос, какие типы узлов задействованы, какова их работа и какие данные должны быть доступны через NFS и где должны находиться эти общие каталоги? Я также был бы благодарен за любую литературу или учебные пособия, которые указывают мне правильное направление.
Прошло некоторое время с тех пор, как я коснулся SLURM, поэтому отнеситесь к следующему с недоверием. Кроме того, дизайн вашего кластера будет определяться вашей рабочей нагрузкой. Как правило, вы начинаете с головного узла и нескольких вычислительных узлов, а затем наращиваете их. Такой пакет, как Rocks, может быть хорошим началом.
Я вижу проблему с общим каталогом. В зависимости от вашей рабочей нагрузки у вас уже может быть много трафика, проходящего через NFS, поэтому я бы установил SLURM локально. Вы можете сделать копию своей конфигурации slurm доступной на экспортируемом томе NFS и скопировать на место с помощью сценария fornodes или использовать сценарий scp. Если вы вносите много изменений в конфигурацию slurm, вы даже можете добавить в скрипт перезапуск slurmd.
Что касается резервного узла управления, я бы не стал беспокоиться об этом. Ваш головной узел, вероятно, является единственной точкой отказа, поэтому, если вы ее потеряете, у вас уже будут проблемы с вашей работой. Я также не уверен, как работает механизм резервного копирования для учета SLURM, если он включен, поскольку он обычно использует базу данных, такую как MySQL.
Для экспорта я обычно экспортирую каталог / home и / opt в меньшие кластеры. В зависимости от ваших потребностей в данных, вы можете рассмотреть отдельный узел хранения с дополнительным хранилищем, которое будет распределять вашу нагрузку NFS. Поскольку вы упомянули, что у вас проблемы со стабильностью, вы можете рассмотреть возможность использования такого пакета, как Ganglia, который будет отслеживать загрузку узлов, использование памяти, пропускную способность сети и другие значения и представлять их в виде ряда графиков. Вы также можете немного узнать с помощью инструментов командной строки, таких как top running на ваших вычислительных узлах. Вы также захотите протестировать масштабирование ваших рабочих мест. Если ваши задания выполняются ужасно, когда они охватывают узлы (MPI?), Вам может потребоваться более быстрое межсоединение с меньшей задержкой, такое как Infiniband или 10Gb Ethernet.
Удачи с SLURM. Мне нравилось использовать его до того, как я сменил работу, но поскольку он не так популярен, как Torque / Maui или Sun / Oracle Grid Engine, ответы на мои странные вопросы всегда было трудно найти.