Как создать суперкомпьютер

Вам нужна машина, способная проводить вычисления с точностью до сотен триллионов знаков после запятой за секунду? Или вам нужна история, которую можно рассказывать в барах, о том, как суперкомпьютер в вашем подвале выбил пробки? Создание собственного Высокопроизводительного Компьютера, или суперкомпьютера — задача, которую любой опытный гик может решить за выходные при наличии свободного времени и некоторой суммы денег. Выражаясь техническим языком, современный мультипроцессорный суперкомпьютер — сеть из компьютеров, которые работают параллельно для решения проблемы. В этой статье кратко описан каждый шаг процесса построение такой сети, внимание уделяется «железу» и программному обеспечению.

Шаги

  1. В первую очередь определитесь с тем, какие компоненты и ресурсы потребуются. Вам нужен будет один главный узел, минимум десяток идентичных вычислительных узлов, свитч Ethernet, блок распределения питания и стойка. Определите мощность проводки и охлаждения, а также площадь пространства, которые вам потребуются. Также определитесь, какие IP адреса вы хотите использовать для узлов, какое ПО вы поставите и какие технологии потребуются для создания параллельных вычислительных мощностей (подробнее об этом ниже).
    • Хотя «железо» стоит дорого, все приведенные в статье программы распространяются бесплатно, и большинство из них — с открытым исходным кодом.
    • Если вы хотите узнать, насколько быстрым теоретически может быть ваш суперкомпьютер, используйте этот инструмент: http://hpl-calculator.sourceforge.net/
  2. Смонтируйте ноды. Вам нужно будет собрать узлы сети или приобрести предварительно собранные серверы.
    • Выбирайте рамы для серверов с максимально рациональным использованием пространства и энергии, а также с эффективным охлаждением.
    • Или вы можете «утилизировать» десяток или около того б/у серверов, несколько устаревших — и пусть их вес превышает суммарный вес комплектующих, зато вы сэкономите приличную сумму. Все процессоры, сетевые адаптеры и материнские платы должны быть одинаковы, чтобы компьютеры хорошо работали вместе. Конечно, не забудьте о RAM и жесткие диски для каждой ноды, а также как минимум об одном оптическом приводе для главного узла.
  3. Установите серверы в стойку. Начинайте снизу, чтобы стойка не была перегружена сверху. Вам понадобится помощь друга — собранные серверы могут быть очень тяжелыми, и ставить их в ячейки, на которых они держатся в стойке, довольно сложно.
  4. Установите свитч Ethernet рядом со стойкой. Стоит сразу же сконфигурировать свитч: установите размер джамбо-кадров 9000 байт, установите статический IP адрес, который вы выбрали на шаге 1 и выключите ненужные протоколы, такие как SMTP.
  5. Установите распределитель питания (PDU, или Power Distribution Unit). В зависимости от того, какую максимальную нагрузку выдают ноды в вашей сети, вам может потребоваться 220 вольт для высокопроизводительного компьютера.
  6. Когда все установлено, переходите к конфигурированию. Linux по факту является основной системой для высокопроизводительных (HPC) кластеров – он не только идеально подходит в качестве окружения для научных вычислений, но вам еще и не придется платить за установку системы на сотни и даже тысячи узлов. Представьте, во сколько обошлась бы установка Windows на все ноды!
    • Начните с установки последней версии BIOS для материнской платы и ПО от производителя, которое должно быть одинаковым для всех серверов.
    • Установите предпочитаемый дистрибутив Linux на все ноды, а на главный узел — дистрибутив с графическим интерфейсом. Популярные системы: CentOS, OpenSuse, Scientific Linux, RedHat и SLES.
    • Автор очень рекомендует использовать Rocks Cluster Distribution. В дополнение к установке всех необходимых для кластера программ и инструментов, Rocks реализует отличный метод для быстрого 'переноса' множества копий системы на аналогичные сервера с использованием PXE boot и процедуры 'Kick Start' от Red Hat.
  7. Установите интерфейс передачи сообщений, менеджер ресурсов и другие необходимые библиотеки. Если вы не поставили Rocks на предыдущем шаге, вам придется вручную устанавливать необходимое программное обеспечение, чтобы настроить логику параллельных вычислений.
    • Для начала вам понадобится портативная система для работы с bash, например, Torque Resource Manager, который позволяет разделять и распределять задачи на несколько машин.
    • Добавьте к Torque еще Maui Cluster Scheduler, чтобы закончить установку.
    • Дальше вам нужно установить интерфейс передачи сообщений, который необходим для того, чтобы индивидуальные процессы в каждой отдельной ноде использовали общие данные. OpenMP — самый простой вариант.
    • Не забудьте о многопоточных математических библиотеках и компиляторах, которые будут «собирать» ваши программы для распределенных вычислений. Я уже говорил, что вам стоит просто поставить Rocks?
  8. Соедините компьютеры в сеть. Главная нода посылает задачи для вычисления на подчиненные ноды, которые в свою очередь должны вернуть результат обратно, а также отправлять сообщения друг другу. И чем быстрее все это происходит, тем лучше.
    • Используйте частную Ethernet сеть, чтобы соединить все ноды в кластер.
    • Главная нода может также работать в качестве NFS, PXE, DHCP, TFTP и NTP сервера при подключении к Ethernet.
    • Вы должны отделить эту сеть от публичных, чтобы быть уверенным, что пакеты не перекрываются другими в LAN.
  9. Протестируйте кластер. Последнее, что вам стоит сделать перед тем, как дать доступ пользователям к компьютерным мощностям — протестировать производительность. HPL (High Performance Lynpack) benchmark - популярный вариант для измерения скорости вычислений в кластере. Вам нужно скомпилировать ПО из исходников с самой высокой степенью оптимизации, которую позволяет ваш компилятор для той архитектуры, которую вы выбрали.
    • Вы должны, конечно, компилировать со всеми возможными настройками оптимизации, которые доступны для платформы, которую вы выбрали. Например, при использовании AMD CPU компилируйте в Open64 и уровнем оптимизации -0.
    • Сравните полученные результаты с TOP500.org, чтобы сопоставить свой кластер с 500 самыми быстрыми суперкомпьютерами в мире!

Советы

  • IPMI может упростить администрирование большого кластера, предоставив KVM-over-IP, удаленное управление питанием и многое другое.
  • Для получения действительно высокой скорости работы взгляните на интерфейс InfiniBand network. Но будьте готовы оплатить премиальный доступ.
  • Используйте Ganglia для мониторинга нагрузки на отдельные ноды.

Предупреждения

  • Убедитесь, что инфраструктура помещения (проводка и так далее) выдержит нагрузку.
Информация
Посетители, находящиеся в группе Guests, не могут оставлять комментарии к данной публикации.