Нужна машина, способная выполнять триллионы вычислений с плавающей запятой за секунду? Или вам нужен крутой рассказ о вашем персональном суперкомпьютере, который выключил свет в вашей деревне? Создание суперкомпьютера - интересная задача, если вы богатый гений и у вас есть свободное время. Технически многопроцессорный суперкомпьютер - это сеть компьютеров, которые работают вместе для решения проблемы. В этой статье мы кратко обсудим каждый этап его создания, уделяя особое внимание аппаратному и программному обеспечению.
Шаг
Шаг 1. Сначала выясните, какие аппаратные компоненты вам понадобятся
Один главный узел, по крайней мере, дюжина идентичных вычислительных узлов, коммутатор Ethernet, блок распределения питания (PDU) и серверная стойка. Также узнайте о потребностях в электричестве, охлаждении и пространстве. Укажите IP-адрес для частной сети, имена узлов, программные пакеты, которые вы хотите установить, и какую технологию вы хотите использовать, чтобы заставить их все работать вместе для выполнения параллельных вычислений (подробнее об этом ниже).
- Хотя оборудование, которое вам понадобится, дорогое, все программное обеспечение в этом руководстве бесплатное, и большая его часть имеет открытый исходный код.
- Если вы хотите узнать, насколько быстрым будет ваш суперкомпьютер (теоретически), используйте это:
Шаг 2. Постройте вычислительные узлы
Вы можете собрать нужные вычислительные узлы самостоятельно или использовать готовый сервер.
- Выберите платформу компьютерного сервера, которая максимизирует пространство, охлаждение и энергоэффективность.
- Или вы можете использовать примерно дюжину устаревших серверов. При совместном использовании они гораздо более полезны, чем при использовании по отдельности, и вы можете немного сэкономить. Все процессоры, сетевые адаптеры и материнские платы должны быть одинаковыми, чтобы система работала бесперебойно. Конечно, не забывайте об оперативной памяти и емкости хранилища для каждого узла и как минимум об одном оптическом приводе для основного узла.
Шаг 3. Установите встроенный сервер в серверную стойку
Начните снизу, чтобы избежать возражений наверху. Пригласите друга помочь вам, так как перегруженные серверы могут стать настолько тяжелыми, что их будет сложно разместить в ящиках.
Шаг 4. Установите коммутатор Ethernet на корпусе сервера
Воспользуйтесь этой возможностью, чтобы настроить его: укажите размер кадра 9000 байт, установите IP-адрес на статический адрес, указанный на шаге 1, и отключите ненужные протоколы маршрутизации, такие как SMTP Snooping.
Шаг 5. Установите блок распределения питания
Вам может потребоваться 220 вольт для высокопроизводительных вычислений, в зависимости от того, какой ток требуется узлу при максимальной нагрузке.
Шаг 6. После того, как все установлено, вы можете начать процесс настройки
Linux - это операционная система, которую необходимо использовать для высокопроизводительных вычислительных кластеров, потому что она не только идеальна для научных вычислений, но и на 100% бесплатна. Если количество узлов достигает сотен или даже тысяч, использование Windows будет стоить очень дорого!
- Начните с установки последней версии BIOS и прошивки материнской платы. Установленная версия должна быть одинаковой для всех узлов. Начните с установки последней версии BIOS и прошивки материнской платы, которая должна быть одинаковой на всех узлах.
- Установите нужный дистрибутив Linux на каждый узел с графическим интерфейсом на главном узле. Популярные варианты - CentOS, OpenSuse, Scientific Linux, RedHat и SLES.
- Автор настоятельно рекомендует использовать кластерное распределение Rocks. Rocks мгновенно установит все программы, необходимые для работы вашего суперкомпьютера, и воспользуется изящным способом «поделиться» собой на всех существующих узлах, используя загрузку Red Hat PXE и процедуру «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 Linpack) - популярный эталонный тест для измерения скорости вычислений суперкомпьютеров. Вам нужно будет выполнить компиляцию из исходного кода со всеми вариантами оптимизации, предлагаемыми компилятором, который вы используете для выбранной вами архитектуры.
- Конечно, вам нужно компилировать из исходников со всеми возможными вариантами оптимизации для вашей платформы. Например, если вы используете процессор AMD, скомпилируйте его с помощью Open64 с уровнем оптимизации -0fast.
- Сравните результаты своих тестов на TOP500.org, чтобы сравнить свой суперкомпьютер с 500 самыми быстрыми суперкомпьютерами в мире!
подсказки
- Если вам нужна высокая скорость сети, обратите внимание на сетевой интерфейс InfiniBand. Конечно, вы должны быть готовы заплатить большую цену.
- IPMI может упростить администрирование больших суперкомпьютерных кластеров, предоставляя KVM-over-IP, удаленное управление циклом включения питания и другие функции.
- Используйте Ganglia для отслеживания вычислительной нагрузки на узлы.