Вам нужна машина, способная выполнять сотни триллионов вычислений с плавающей запятой в секунду? Или вам нужна барная история о том, как суперкомпьютер в вашем подвале щелкнул выключателем? Создание собственного высокопроизводительного вычислительного кластера, также известного как суперкомпьютер, - задача, с которой может справиться любой эксперт-компьютерщик, имеющий выходные свободного времени и немного денег, которые можно потратить. С технической точки зрения современный многопроцессорный суперкомпьютер - это сеть компьютеров, работающих параллельно для решения проблемы. В этой статье кратко описан каждый этап процесса, уделяя особое внимание аппаратному и программному обеспечению.
Шаги
Шаг 1. Сначала определите необходимые аппаратные компоненты и ресурсы
Вам понадобится один головной узел, как минимум дюжина идентичных вычислительных узлов, коммутатор Ethernet, блок распределения питания и стойка. Определите потребность в электроэнергии, охлаждение и необходимое пространство. Также решите, какой IP-адрес вы хотите использовать для своих частных сетей, как назвать узлы, какие программные пакеты вы хотите установить и какую технологию вы хотите предоставить возможности параллельных вычислений (подробнее об этом позже).
- Хотя оборудование дорогое, все программное обеспечение, перечисленное в этом руководстве, является бесплатным, и большинство из них имеет открытый исходный код.
- Если вы хотите узнать, насколько быстрым будет теоретически ваш суперкомпьютер, воспользуйтесь этим инструментом:
Шаг 2. Создайте вычислительные узлы
Вам нужно будет собрать вычислительные узлы или приобрести готовые серверы.
- Выберите корпус компьютерного сервера, который обеспечивает максимальное пространство, охлаждение и энергоэффективность.
- Или вы можете использовать около дюжины бывших в употреблении, устаревших серверов - все они будут перевешивать сумму их частей, но при этом сэкономят вам приличную сумму денег. Все процессоры, сетевые адаптеры и материнские платы должны быть идентичны, чтобы вся система могла нормально работать вместе. Конечно, не стоит забывать об оперативной памяти и хранилище для каждого узла и хотя бы об одном оптическом приводе для головного узла.
Шаг 3. Установите серверы в стойку
Начинайте снизу, чтобы стойка не была тяжелой. Вам понадобится друг, чтобы помочь вам в этом - плотно расположенные серверы могут быть очень тяжелыми, и направить их к направляющим, удерживающим их в стойке, сложно.
Шаг 4. Установите коммутатор Ethernet над корпусом сервера
Воспользуйтесь моментом, чтобы настроить коммутатор: разрешите размер jumbo-кадра 9000 байт, установите IP-адрес на статический адрес, который вы выбрали на шаге 1, и отключите ненужные протоколы маршрутизации, такие как SMTP Snooping.
Шаг 5. Установите PDU (блок распределения питания)
В зависимости от того, какой ток может потребоваться вашим узлам при максимальной нагрузке, вам может потребоваться 220 вольт для высокопроизводительных вычислений.
Шаг 6. После того, как все установлено, вы можете начать процесс настройки
Linux де-факто является ОС для кластеров HPC - это не только идеальная среда для научных вычислений, но и простая установка на сотни или даже тысячи узлов. Представьте, сколько будет стоить установка Windows на всех этих узлах!
- Начните с установки последней версии BIOS и прошивки материнской платы, которая должна быть одинаковой на всех узлах.
- Установите предпочитаемый вами дистрибутив Linux на каждый узел с графическим интерфейсом для головного узла. Популярные варианты включают CentOS, OpenSuse, Scientific Linux, RedHat и SLES.
- Этот автор настоятельно рекомендует использовать Rocks Cluster Distribution. Помимо установки всех инструментов, необходимых для работы вычислительного кластера, Rocks использует отличный метод для очень быстрого «распределения» множества своих экземпляров по узлам с помощью загрузки PXE и процедуры Red Hat «Kick Start».
Шаг 7. Установите интерфейс передачи сообщений, диспетчер ресурсов и другие необходимые библиотеки
Если вы не установили Rocks на предыдущем шаге, вам придется вручную настроить необходимое программное обеспечение для включения механизмов параллельных вычислений.
- Сначала вам понадобится портативная система управления bash, такая как Torque Resource Manager, которая позволяет разбивать и распределять задачи по нескольким машинам.
- Соедините Torque с Maui Cluster Scheduler, чтобы завершить настройку.
- Затем вам нужно будет установить интерфейс передачи сообщений, необходимый для того, чтобы отдельные процессы на отдельных вычислительных узлах могли совместно использовать одни и те же данные. OpenMP не вызывает затруднений.
- Не забывайте о многопоточных математических библиотеках и компиляторах для создания программ параллельных вычислений. Я уже упоминал, что вам нужно просто установить Rocks?
Шаг 8. Объедините вычислительные узлы в сеть
Головной узел отправляет вычислительные задачи вычислительным узлам, которые, в свою очередь, должны отправлять результат обратно, а также отправлять сообщения друг другу. Чем быстрее тем лучше.
- Используйте частную сеть Ethernet для соединения всех узлов в кластере.
- Головной узел также может действовать как сервер NFS, PXE, DHCP, TFTP и NTP в сети Ethernet.
- Вы должны отделить эту сеть от общедоступных сетей, чтобы гарантировать, что широковещательные пакеты не будут мешать другим сетям в вашей локальной сети.
Шаг 9. Протестируйте кластер
Последнее, что вы можете сделать перед тем, как предоставить пользователям всю эту вычислительную мощность, - это проверить ее производительность. Тест HPL (High Performance Lynpack) - популярный выбор для измерения вычислительной скорости кластера. Вам нужно будет скомпилировать его из исходного кода со всеми возможными оптимизациями, которые ваш компилятор предлагает для выбранной вами архитектуры.
- Конечно, вы должны компилировать из исходников со всеми возможными вариантами оптимизации для вашей платформы. Например, при использовании процессоров AMD компилируйте с Open64 с уровнем оптимизации -0fast.
- Сравните свои результаты на TOP500.org, чтобы сравнить свой кластер с 500 самыми быстрыми суперкомпьютерами в мире!
Видео - с помощью этой службы некоторая информация может быть передана YouTube
подсказки
- Для действительно высоких сетевых скоростей обратите внимание на сетевые интерфейсы InfiniBand. Однако будьте готовы платить более высокую цену.
- IPMI может упростить администрирование большого кластера, предоставляя KVM-over-IP, удаленное включение и выключение питания и многое другое.
- Используйте Ganglia для отслеживания вычислительных нагрузок на узлы.