Ранние суперкомпьютеры использовали параллельную обработку данных и распределенные вычисления для того, чтобы соединить процессоры вместе в одну машину. Сегодня же это возможно повторить буквально в домашних условиях используя подручные инструменты и некоторое количество недорогих материнских плат с процессорами и памятью – такой подход к созданию мощных машин называется «создать кластер». Глену Гарднеру понравилась эта идея, поэтому он решил построить самостоятельно у себя дома массивный кластер из параллельно соединенных компьютеров на основе материнских плат 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 КВА. Этот монстр заодно будет обеспечивать питанием компьютеры в то время, когда местная компания отключит электричество. Вообще я думаю, что иногда стоит заранее подумать об электропитании – мой «мод» вышел далеко недешевым и я не согласен жить с мыслью, что в один прекрасный день весь кластер погорит к чертям. После того, как я обеспечил своему мини-кластеру такую отличную защиту, я могу быть спокойным за безопасность и отказоустойчивость оборудования.