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