Использование HPC-менеджеров, таких как Slurm, на нескольких серверах в локальной сети

Использование HPC-менеджеров, таких как Slurm, на нескольких серверах в локальной сети

У меня есть доступ к группе серверов, подключенных к локальной сети 1Gb, и каждый из них имеет 40+ ядер и ОС Ubuntu. У всех них есть общий NAS. Я установил SLURM на нескольких из них и настроил его так, чтобы каждый сервер был и контрольным, и вычислительным узлом, и серверы не были подключены. Требуемые анализы являются биоинформационными и привязаны к процессору, но с файлами в ГБ. У меня следующие вопросы:

  1. Это ведь не вычислительный кластер, верно? Что нужно, чтобы объединить эти серверы в один кластер?
  2. Является ли допустимой практика использования HPC-менеджеров, таких как Slurm, в этой конфигурации? Как будут совместно использоваться данные? У них есть общий NAS, но выполнение любых вычислений на NAS напрямую очень медленно по сравнению с локальными файлами.

Мое идеальное решение — перетащить файлы на локальную машину (в идеале независимо от их местоположения, но NAS может быть общим хабом), выполнить вычисления и, возможно, вернуть выходные файлы. Это необоснованный запрос или решенная проблема?

Заранее спасибо!

решение1

Да, это вычислительный кластер. У меня есть широкое определение, как несколько вычислительных узлов, которым поручена одна и та же рабочая нагрузка. Большая ферма сборки с несколькими хостами, на которых запущены вычислительные рабочие процессы, подходит. То же самое касается и огромных систем из списка TOP500.

Что еще важнее, используйте возможности slurm по управлению несколькими узлами. В противном случае, один контроллер, управляющий только собой, — это довольно сложная задача, так как функций у него не так много по сравнению с более простыми системами. Добавьте все узлы и разделите их на разделы.

Задания, запрашивающие более одного узла, требуют, чтобы программы были осведомлены о нескольких узлах, как в MPI. Для обычных неосведомленных программ просто оставьте запросы на одном узле.

Хранилище, вам нужно будет спроектировать что-то, чтобы доставлять файлы на узлы. Обычно варианты включают:

  • Скопируйте файлы в локальное хранилище каждого узла. (slurm sbcast)
  • Распределить распределенное хранилище по дискам многих узлов. (Lustre, Ceph)
  • Высокопроизводительный файловый ресурс, смонтированный на каждом узле. (Все флэш-массивы обслуживают NFS)

Связанный контент