Ранние суперкомпьютеры использовали параллельную обработку данных и распределенные вычисления для того, чтобы соединить процессоры вместе в одну машину. Сегодня же это возможно повторить буквально в домашних условиях используя подручные инструменты и некоторое количество недорогих материнских плат с процессорами и памятью – такой подход к созданию мощных машин называется «создать кластер». Глену Гарднеру понравилась эта идея, поэтому он решил построить самостоятельно у себя дома массивный кластер из параллельно соединенных компьютеров на основе материнских плат Mini-ITX. В кластере используется двенадцать 800 Мегагерцовых кластерных узлов.
Машина будет работать под управлением операционной системы
Оригинальная конфигурация из шести узлов.
Завершенный кластер состоящий из двенадцати узлов.
На фотографии показано, сколько мощности потребляют шесть узлов в режиме бездействия – всего-то 60 ватт (по 10 ватт на каждый узел).
На тот момент, когда я закончил работу над кластером, весь кластер с 12-ю узлами потреблял в режиме бездействия приблизительно 140 Ватт (это, считай, 12 полноценных компьютеров), пиковая нагрузка составляла приблизительно 200 Ватт. Никаких проблем с чрезмерным выделением тепла и перегревами замечено не было. Контролирующий узел обладал оперативной памятью объемом в 256 Мегабайт, и, как я уже говорил, винчестером объемом 160 Гигабайт. Официальных тестов на этой машине я еще не проводил, но на первый взгляд с простыми задачами мини-кластер справлялся быстрее, чем четыре машины с процессорами P4 2.4 GHz объединенные в одну сеть с параллельной обработкой данных, это еще не учитывая энергопотребление и цену!
Питание и охлаждение
Платы Mini-ITX обладают очень малым рассеянием мощности по сравнению с большинством популярных комбинаций современных материнских плат с процессорами. Это означает, что кластер построенный на материнских платах Mini-ITX с, например, шестнадцатью вычислительными узлами не потребует абсолютно никакого специального охлаждения. Маленькое рассеяние мощности также означает, что кластер будет потреблять минимальное количество электроэнергии (примеры я приводил выше), что в свою очередь означает, что можно использовать всего одну недорогую UPS-ку для обеспечения «чистого» и стабильного питания всему кластеру.
Как говорится, все познается в сравнении, поэтому я приведу контрастный пример использования 12-16 вычислительных узлов построенных на основе процессоров от Intel или AMD, которые будут генерировать достаточно тепла для того, чтобы помещение пришлось охлаждать кучей кондиционеров. В добавок ко всему для питания такой монструозной системы вам понадобится стабильная электрическая линия выдерживающая пиковую нагрузку в два-три киловатта (сравниваем с 200 Ваттами пиковой нагрузки кластера построенного на матплатах Mini-Itx (что как минимум в 10 раз меньше)), которые будет потреблять ваш кластер состоящий всего-то из 12 вычислительных узлов на пентиумах. Так что если вы будете использовать процессоры от Intel или AMD, то готовьтесь к дополнительным счетам за электричество и кондиционирование...
Конструкция с точки зрения «железа»
Кластер построен на двух приблизительно одинаковых «шкафах». В каждом «шкафу» установлено два отдельных стеллажа – на каждом стеллаже по три материнские платы и по три адаптера dc-dc (постоянный ток – постоянный ток), которые установлены на алюминиевых стержнях-ножках.
Также поверх каждого стеллажа крепился стек с адаптерами IDE -> CompactFlash, также по три адаптера на один стеллаж. Каждый стек с платами крепился между двух алюминиевых листов (размерами 18 см на 25 см) толщиной 1,6 мм. В общей сложности на каждый «шкаф» использовалось семь алюминиевых панелей.
На верхней крышке я закрепил кронштейн с шестью кнопками (включить-выключить-перезагрузить).
Плата установленная ниже играла роль терминала раздачи электропитания. Кабель, подающий напряжение на каждый шкаф, естественно был достаточно мощным – многожильный (под номером 14) в поливинилхлоридной изоляции. Кабели, забирающие питание с терминала и подводящие его к каждому вычислительному узлу (вернее к dc-dc адаптеру) были попроще – обычный (номер 18) многожильный подвесной монтажный провод с поливинилхлоридной изоляцией. Кабели шедшие от кнопок сброса/включения питания были совсем простыми многожильными проводами (номер 24), также облаченными в поливинилхлоридную изоляцию.
В первом «шкафу» кластера содержится шесть узлов (с первого по шестой), причем первый узел является управляющим узлом, остальные узлы являются вычислительными. В основании первого «шкафа» также крепится винчестер на 160 Гигабайт, который используется управляющим узлом. Все остальные узлы подключаются к накопителям IBM Microdrive. Узел номер три имеет отдельный адаптер Compact Flash, который может использоваться для дублирования накопителей Microdrive, что достаточно заметно упрощает обслуживание.
Кабели идущие от накопителей (шлейфы и кабели питания) были аккуратно, на сколько это возможно, уложены в одну линию на задней панели. Везде и всюду для стяжки кучи проводов я использовал пластиковые хомуты, которые помогли избежать «джунглей» из проводов, в которых я вряд ли бы смог отыскать хоть одну материнскую плату или накопитель.
Нижний «шкаф» включал в себя узлы с седьмого по двенадцатый, к каждому узлу устанавливался один накопитель Microdrive (крепились накопители точно также, как и в верхнем шкафу). Таким образом нижний шкаф отличается от верхнего только лишь отсутствием установленного снизу винчестера. Вся работа по металлу производилась вручную – для этого я использовал алюминиевые листы толщиной 1,6 миллиметров и двухсантиметровый алюминиевый уголок. Все это устанавливалось на вертикальные металлические опоры. На днище корпуса были установлены самоклеящиеся резиновые ножки, которые предотвращали повреждение деликатных поверхностей.
Никаких сложных работ по сверлению и резке не производилось, все просто – отрезал, просверлил несколько отверстий, закрепил.
Все провода подсоединялись, естественно, вручную – использовались обычные инструменты вроде кусачек и плоскогубцев. Провода зажимались в обычные зажимы с винтом.
Провода также вручную припаивались к выключателям и кнопкам обыкновенным паяльником. Другая сторона подключалась к стандартному 2,5 миллиметровому коннектору, который в свою очередь подключался к материнской плате.
Сеть
Что можно сказать по поводу сети? Да здесь тоже нет ничего необычного. Для соединения компьютеров я использовал обыкновенные встроенные в материнские платы сетевые адаптеры (fast Ethernet, 100 Мегабит). Сетевой концентратор (ну если по-простому, то свитч или хаб), который установлен между двух шкафов представлял собой простой дешевый сетевой концентратор на 16 портов, приобретенный в обычном магазине офисного оборудования всего за 80$. Сетевой кабель я обжал вручную, использовалась хорошая, высококачественная витая пара (8 жил) пятой категории.
Некоторые соображения по поводу питания
Конвертеры DC-DC требуют чистое и точное напряжение в 12 вольт постоянного тока, лишенное каких-либо помех, перепадов и скачков. Для подачи такого напряжения я выбрал мощный импульсный блок питания на 60 ампер, выдающий стабильное ровное напряжение в 12 вольт. Блок питания выдает до 60 ампер в пике. Для обеспечения ровного переменного тока на входе (у нас напряжение не совсем стабильное и бывают перепады) я выбрал UPS на 1 КВА. Этот монстр заодно будет обеспечивать питанием компьютеры в то время, когда местная компания отключит электричество. Вообще я думаю, что иногда стоит заранее подумать об электропитании – мой «мод» вышел далеко недешевым и я не согласен жить с мыслью, что в один прекрасный день весь кластер погорит к чертям. После того, как я обеспечил своему мини-кластеру такую отличную защиту, я могу быть спокойным за безопасность и отказоустойчивость оборудования.