Оглавление:

DEMAC, модульный кластер Беовульфа с 3D-печатью: 23 шага (с изображениями)
DEMAC, модульный кластер Беовульфа с 3D-печатью: 23 шага (с изображениями)

Видео: DEMAC, модульный кластер Беовульфа с 3D-печатью: 23 шага (с изображениями)

Видео: DEMAC, модульный кластер Беовульфа с 3D-печатью: 23 шага (с изображениями)
Видео: Модульная алюминиевая крановая система г/п 1000 кг 2024, Ноябрь
Anonim
DEMAC, модульный кластер Беовульфа с 3D-печатью
DEMAC, модульный кластер Беовульфа с 3D-печатью

Высокопроизводительные вычисления (HPC) - это способность обрабатывать данные и выполнять сложные вычисления на высоких скоростях, это применение «суперкомпьютеров» для решения вычислительных задач, которые либо слишком велики для стандартных компьютеров, либо требуют слишком много времени для выполнения. Top500 - это список, который публикуется два раза в год и включает в себя одни из самых быстрых и мощных компьютеров в мире. Страны и крупные организации тратят миллионы ресурсов на то, чтобы эти системы работали, чтобы ученые могли использовать современные технологии и решать сложные проблемы.

Много лет назад компьютеры улучшали свою производительность за счет увеличения скорости процессора. После того, как мы столкнулись с замедлением такого подхода, разработчики решили, что для дальнейшего повышения производительности компьютеров несколько ядер (или вычислительных единиц) должны быть упакованы вместе. Агрегация нескольких вычислительных ресурсов и механизмов для управления этими ресурсами - это то, что мы называем «параллелизмом» в информатике. Наличие нескольких ядер, выполняющих несколько задач, звучит как хороший подход к повышению производительности компьютера … но возникает большой вопрос: как мы можем использовать эти ресурсы более эффективно?

Эти вопросы не давали покоя ученым-информатикам, есть несколько способов указать компьютеру, как что-то делать, есть еще больше способов указать нескольким компьютерам, как что-то делать. Этот проект направлен на разработку доступной платформы, на которой каждый может экспериментировать с высокопараллельной машиной, тестировать существующие модели для применения в своих проектах, разрабатывать новые и творческие способы решения вычислительных задач или просто использовать их как способ научить других о компьютерах. Мы надеемся, что вам понравится работать с DEMAC так же, как и нам.

DEMAC

Кластер модульной сборки (DEMAC) в Делавэре представляет собой расширяемый массив встроенных систем (компьютеры размером с карту) и набор рамок с трехмерной печатью для размещения плат и дополнительного оборудования, обеспечивающего питание, охлаждение и доступ к сети.

Каждое устройство или встроенная система - это небольшой компьютер, плата Parallella, сочетающая в себе ресурсы двухъядерного процессора ARM, 16-ядерного сопроцессора под названием Epiphany и встроенной FPGA с гибкостью полного стека с открытым исходным кодом. Крепление представляет собой самодельную раму, напечатанную на 3D-принтере, которая обеспечивает недорогую реализацию и расширяемую конструкцию. Он рассчитан на установку 4 единиц в стойку стандартного размера (например, в серверных комнатах).

Это руководство включает:

- Список необходимых материалов

- Инструкции по 3D-печати рамок

- Инструкция по сборке и соединению деталей

- Руководство по загрузке и установке необходимого программного обеспечения

- Описание того, как подключиться и взаимодействовать с кластером

- А «Зачем мы это делаем?» раздел

Кто мы?

Мы - CAPSL (Лаборатория компьютерной архитектуры и параллелизма) из Университета Делавэра. Мы считаем, что будущее вычислений должно иметь прочную основу в теории потока данных (которую мы объясним позже в этом руководстве, если вам интересно).

Запасы

В этом списке описаны материалы, необходимые для создания кластера из 4 плат.

- 4 доски Parallella (вы можете получить их у DigiKey или других поставщиков, дополнительную информацию можно найти на их веб-сайте

- 4 карты micro-SD объемом не менее 16 ГБ (вот очень дешевая упаковка из 10 или что-то вроде этих более гибких комбинаций)

- 4 кабеля micro-USB длиной не менее 30 см (я рекомендую эти)

- Зарядное устройство USB [как минимум с 4 портами типа A] (я рекомендую это устройство с 6 портами или одно с таким же форм-фактором, поскольку для него предназначен корпус питания)

- Вентилятор охлаждения [максимальный размер 100 мм x 100 мм x 15 мм] (я рекомендую этот, потому что он дешев и работает, но другие с аналогичным размером и конфигурацией кабеля работают)

- Блок питания для охлаждающего вентилятора (если ваша конфигурация рассчитана на более чем 8 плат, я рекомендую эту или что-то подобное [AC 100 В / 240 В до DC 12 В 10 A 120 Вт], который имеет красивый металлический корпус и также может быть прикреплен к переключателю) (Если вы собираетесь подключить только два вентилятора или меньше, вы можете использовать любые 12 В с выходным блоком питания не менее 1 А, который у вас может лежать)

- 5 кабелей Ethernet (4 могут быть такими же короткими, в зависимости от расстояния от коммутатора до плат, и один должен быть достаточно длинным, чтобы подключить коммутатор либо к вашему компьютеру, либо к модему для доступа к сети кластера)

>> Важное примечание: необходима система охлаждения, иначе платы могут перегреться! <<<

Детали, напечатанные на 3D-принтере

- 4 лотка для картона (Frame_01)

- 1 корпус платы (Frame_02)

- 1 кожух вентилятора (Frame_03_B & Frame_03_T)

- 1 силовой кожух (Frame_04)

Шаг 1: О DEMAC

О DEMAC
О DEMAC

DEMAC является частью более широкой картины, гибкой и расширяемой платформы, которая позволяет нам разрабатывать и тестировать новые модели выполнения программирования (PXM) для параллельных вычислений. PXM - это больше, чем способ описания вычислений, он представляет собой основу, которая обеспечивает согласие между способом выражения программы и тем, как она переводится на общий язык, который может выполняться машиной. Мы описываем набор элементов, которые позволяют пользователю создавать программы, и способ организации выполнения программы. Программа может быть оптимизирована для конкретной архитектуры пользователем или автоматизированным инструментом на основе этого общего фона.

Вы можете узнать больше об этом проекте в конце этой инструкции, вы также можете щелкнуть здесь, чтобы получить больше информации о DEMAC, или здесь, чтобы получить больше информации о CAPSL)

Шаг 2: 3D-печать DEMAC

3D-печать DEMAC!
3D-печать DEMAC!
3D-печать DEMAC!
3D-печать DEMAC!
3D-печать DEMAC!
3D-печать DEMAC!

В этом разделе вы можете найти руководство по 3D-печати рам, которые охватывают другие компоненты и обеспечивают структурную поддержку. Даже если вы являетесь мастером 3D-печати, вот несколько советов, которые вы можете учитывать при печати этих рамок. Все кадры можно распечатать с помощью сопла 0,4 мм с высотой слоя 0,3 или 0,2 (также можно использовать адаптивное приспособление). Я напечатал все, используя PLA, но не имеет особого значения, хотите ли вы использовать другие материалы (если они обеспечивают структурную стабильность и могут выдерживать более высокие или равные температуры, чем PLA).

Файлы STL:

www.thingiverse.com/thing:4493780

cults3d.com/en/3d-model/various/demac-a-mo…

www.myminifactory.com/object/3d-print-dema…

Лоток для досок (Frame_01)

Никаких дополнительных опор не требуется. Это довольно просто, просто поместите его плоской поверхностью к поверхности для печати.

Корпус платы (Frame_02)

Для этого может потребоваться некоторая поддержка в средних балках. Вы можете утверждать, что хорошо настроенная машина / слайсер может печатать эти мосты без дополнительной поддержки. Пожалуйста, сначала попробуйте несколько стресс-тестов моста, если вы хотите печатать без опор, поскольку идея заключалась в том, что они не потребуются. С другой стороны, боковые колонны и стенки обеспечивают достаточную поддержку для печати без дополнительных поддерживающих структур.

Корпус вентилятора (Frame_03_B & Frame_03_T)

Никаких дополнительных опор не требуется. Просто поместите обе части плоской поверхностью к поверхности для печати.

Кожух питания (Frame_04)

Подобно Frame_02, этому может потребоваться некоторая поддержка в средних балках. Вы также можете попробовать распечатать это без дополнительных вспомогательных материалов (как это было задумано). Боковые колонны и стенки обеспечивают достаточную опору для печати без дополнительных опорных конструкций.

Выходной охлаждающий кожух (Frame_05_B и Frame_05_T)

Никаких дополнительных опор не требуется. Просто поместите обе части плоской поверхностью к поверхности для печати.

Шаг 3: Соберите DEMAC

Соберите DEMAC!
Соберите DEMAC!

Теперь, когда у вас есть все необходимые детали, пора приступить к сборке кластера.

Не забудьте удалить поддерживающий материал, который может быть на рамах.

Шаг 4: Поместите вентилятор на кожух

Поместите вентилятор на корпус
Поместите вентилятор на корпус
Поместите вентилятор на корпус
Поместите вентилятор на корпус

Просто вставьте вентилятор внутрь Frame_03_B (с кабелем в правом нижнем углу), нижняя часть должна поместиться внутри небольших изогнутых стенок, удерживающих вентилятор на месте.

Поместите Frame_03_T маленькими изогнутыми стенками вниз поверх Frame_03_B (с уже установленным вентилятором). Следите за тем, чтобы самая широкая крышка Frame_03_T была обращена к более широкой (задней) стороне Frame_03_B. Рамы должны щелкнуть, а крышки должны удерживать их на месте.

Шаг 5: Соедините кожух платы с кожухом питания

Соедините кожух платы с кожухом питания
Соедините кожух платы с кожухом питания
Соедините кожух платы с кожухом питания
Соедините кожух платы с кожухом питания

Поместите Frame_02 поверх Frame_04, эти два предназначены для привязки друг к другу. В нижней части рамы_02 есть небольшая вмятина, которая подходит для разъемов в верхней части рамы_04. Приложите легкую силу, чтобы соединить их.

Шаг 6: Установите охлаждающее устройство

Установите охлаждающее устройство
Установите охлаждающее устройство

Frame_03 (B&T) предназначены для защелкивания с Frame_02, расположив вентилятор лицом к платам (воздушный поток должен идти внутрь Frame_02). На столбцах Frame_02 есть небольшие вмятины, которые должны совпадать с отметками в Frame_03_B. Слегка надавите на боковые грани конструкции до щелчка рам.

Шаг 7. Поместите доски в лотки для картона

Поместите доски в лотки для картона
Поместите доски в лотки для картона

Frame_01 имеет 4 контакта, которые соответствуют отверстиям в плате Parallella. Доска должна легко помещаться в лоток. В зависимости от калибровки вашего 3D-принтера они могут быть слишком большими или слишком маленькими, вы можете использовать немного жидкого силиконового клея, чтобы удерживать их на месте, или немного прижать их плоскогубцами, чтобы уменьшить диаметр.

>> Важное примечание: не забудьте разместить радиаторы на плате <<<

Шаг 8. Вставьте лотки для картона в кожух для картона

Задвиньте лотки для картона в кожух для картона
Задвиньте лотки для картона в кожух для картона

Frame_01 предоставляет слоты, которые подходят к направляющим Frame_02 для каждого уровня. Обратите внимание, что лоток для картона открыт только с одной стороны. Также есть небольшая выпуклость, которая помогает удерживать Frame_01 на месте (честно говоря, в будущей версии может потребоваться некоторое улучшение).

Сдвиньте все 4 лотка для картона с уже установленными досками, по одному на каждый уровень.

Шаг 9: Поместите блок питания внутрь корпуса питания

Поместите блок питания внутри корпуса питания
Поместите блок питания внутри корпуса питания

Поместите блок питания USB внутрь Frame_04 так, чтобы порты USB были обращены наружу. С другой стороны есть небольшое отверстие для кабеля питания, питающего концентратор.

Шаг 10: Подключите вентилятор к источнику питания системы охлаждения

Теперь вентилятор должен быть подключен к источнику питания 12 В, который обеспечивает энергией охлаждающее устройство.

>> Важное примечание: поддерживайте работоспособность системы охлаждения, пока платы подключены к источнику питания <<<

Шаг 11: Настройте ОС

1. Загрузите рекомендованную ОС (Parabuntu) здесь

Существует две версии микросхем (z7010 [P1600 / P1601] и z7020 [P1602 / A101040], для которых требуются разные файлы.

Для обеих версий существует версия без заголовка (без графического пользовательского интерфейса) и версия с поддержкой HDMI и графическим пользовательским интерфейсом)

Если вы хотите использовать выход HDMI, не забудьте купить кабель mini-HDMI.

Вы можете взаимодействовать с версией без головы через сеть.

Более подробную информацию и подробные объяснения можно найти здесь, на официальном сайте.

Вот шаги по установке операционной системы с использованием дистрибутива на основе Linux. Вы можете использовать команды в терминале (без символа $) для следующих шагов или проверить другие процедуры на веб-сайте.

2. Установить

- Вставьте карту micro-SD в свой обычный компьютер - Разархивируйте образ Ubuntu. Измените [releasename] для имени изображения.

$ gunzip -d [название выпуска].img.gz

3. Проверьте путь к устройству вашей SD-карты.

Точный путь устройства к вашей SD-карте зависит от вашего дистрибутива Linux и настроек компьютера. Используя команду ниже, чтобы получить правильный путь. Если из вывода неясно, какой путь является правильным, попробуйте выполнить команду со вставленной SD-картой и без нее. В Ubuntu возвращаемый путь может иметь вид «/ dev / mmcblk0p1».

$ df -h

4. Отключите SD-карту. Вам нужно будет отключить все разделы на SD-картах перед записью карты. [Sd-partition-path] получен из команды «df» на шаге 3.

$ umount [sd-раздел-путь]

5. Запишите образ диска Ubuntu на карту micro-SD.

Запишите образ на SD-карту с помощью утилиты «dd», показанной в примере команды ниже. Будьте осторожны и убедитесь, что вы указали путь правильно, так как эта команда необратима и перезапишет все в пути! Пример команды в Ubuntu: ‘sudo dd bs = 4M if = my_release.img of = / dev / mmcblk0’. Подождите, это может занять некоторое время (много минут) в зависимости от используемого компьютера и SD-карты.

$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]

6. Убедитесь, что все записи на SD-карту завершены.

$ sync

7. Вставьте SD-карту в слот для SD-карты на плате.

Шаг 12: Подключите плату к источнику питания

Используйте кабель miniUSB - USB-A для подключения одной из плат к концентратору USB. Вы можете пометить порты и кабели или определить порядок соединений на тот случай, если вам понадобится отключить плату позже.

Шаг 13: Настройка маршрутизатора

Настройка роутера
Настройка роутера

Если вы устанавливаете ОС без подключения к компьютеру, находясь в большой сети, вам нужно будет использовать маршрутизатор и подключить его к Интернету, платам Parallella и вашему персональному компьютеру.

Если вы не можете подключиться к маршрутизатору, вы также можете подключить плату непосредственно к компьютеру с помощью кабеля Ethernet, эта процедура может быть немного сложнее и не будет рассматриваться в данной инструкции.

Как только все будет подключено, откройте интерфейс вашего маршрутизатора, чтобы узнать, какой IP-адрес присваивается вашей Parallella по умолчанию. Найдите вкладку с надписью «Сеть». Затем найдите раздел «Список клиентов DHCP». Там вы должны увидеть свою плату Parallella и ее IP-адрес.

С помощью этого IP-адреса вы можете подключиться к Parallella по SSH и настроить статический IP-адрес.

Шаг 14: Подключение к Parallella Board с помощью SSH

Примечание. В этом разделе [default_IP] - это динамический IP-адрес, который вы нашли в списке клиентов DHCP.

Проверить подключение к плате

$ ping [IP-адрес по умолчанию]

SSH в плату в первый раз (пароль по умолчанию - параллель)

$ ssh parallella @ [IP-адрес по умолчанию]

Шаг 15: Настройка сети

- Изменить имя хоста: отредактировать / etc / hostname

Здесь вы можете присвоить любое имя, которое хотите, мы рекомендуем использовать NOPA ##

Где ## обозначает номер платы (например, 01, 02,…)

- Установите IP-адреса других плат: отредактируйте / etc / hosts

Установите статический IP-адрес: добавьте приведенный ниже текст для /etc/network/interfaces.d/eth0

# Основной сетевой интерфейсauto eth0

iface eth0 inet статический

адрес 192.168.10.101 #IP должен быть в пределах диапазона маршрутизатора

маска сети 255.255.255.0

gateway 192.168.10.1 # Это должен быть адрес роутера

сервер имен 8.8.8.8

сервер имен 8.8.4.4

После того, как вы назначили IP-адрес плате, вы можете перезапустить соединение с помощью команды

$ ifdown eth0; ifup eth0

или перезагрузите плату

Шаг 16: Настройка Keygen и доступа без пароля на платах

Настройте пару закрытых открытых ключей на каждом узле (включая головной узел). Создайте временную папку, сгенерируйте новый ключ и сделайте его авторизованным ключом и добавьте все NOPA к известным хостам, как показано ниже.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

# Дважды нажмите Enter, чтобы установить и подтвердить пустой пароль.

cp id_rsa.pub authorized_keys

для i в "seq 0 24"; do j = $ (echo $ i | awk '{printf "% 02d / n", $ 0}');

ssh-keyscan NOPA $ J >> known_hosts; сделано

Шаг 17: установка Sshfs

- Использование sshfs позволяет обмениваться файлами между досками кластера. Выполните следующую команду:

$ sudo apt-get install -y sshfs

- Проверка / создание группы предохранителей

Проверить наличие группы предохранителей:

$ cat / etc / group | grep 'предохранитель'

Если группа существует, выполните следующую команду

$ bash sudo usermod -a -G fuse parallella

- Если группы не существует, создайте ее и добавьте в нее пользователя.

$ sudo groupadd предохранитель

$ sudo usermod -a -G предохранитель параллельная

- Раскомментируйте строку user_allow_other в файле fuse.config

$ sudo vim /etc/fuse.conf

Шаг 18: настройте папку NFS

- Модифицируйте файл / etc / fstab

$ sudo vim / и т. д. / fstab

- Замените содержимое текстом, показанным ниже

# [файловая система] [точка монтирования] [тип] [параметры]

sshfs # parallella @ NOPA01: / home / parallella / DEMAC_nfs / home / parallella / DEMAC_nfs fuse comment = sshfs, noauto, users, exec, rw, uid = 1000, gid = 1000, allow_other, reconnect, transform_symlinks, BatchMode = yes, nonemptymlinks, BatchMode = yes, nonemptymlinks, _netdev, identityfile = / home / parallella /.ssh / id_rsa, default_permissions 0 0

Шаг 19: Подключите плату к коммутатору

Поместите коммутатор под кластером или где-нибудь поблизости, используйте кабели Ethernet для подключения платы, которую вы уже настроили, к коммутатору. Вы также можете подключить коммутатор и свой компьютер к маршрутизатору, чтобы получить доступ к кластеру.

Вы должны иметь возможность отправлять ping и ssh на плату, которая теперь подключена к коммутатору со статическим IP-адресом.

Вы также можете добавить IP-адрес и имя хоста в свой файл / etc / hosts. Вы сможете использовать имя хоста для подключения вместо того, чтобы вводить весь IP-адрес.

Шаг 20: повторите шаги с 11 по 19 для каждой доски

Следуйте процедуре настройки ОС и сети для каждой платы.

>> Важное примечание: используйте разные имена хостов и IP для каждой платы! Они должны быть уникальными в сети! <<<

Шаг 21: Подключите периферийные устройства

Подключите периферийные устройства!
Подключите периферийные устройства!

Убедитесь, что вентилятор работает:

Убедитесь, что вентилятор получает питание и воздушный поток направлен внутрь корпуса платы. Связь должна быть стабильной и независимой от других элементов. Помните, что платы могут перегреться, если их неправильно охладить.

Убедитесь, что платы подключены к коммутатору:

На этом этапе вы должны были настроить каждую плату независимо. Платы также должны быть подключены к переключателю. В руководстве по коммутатору должна содержаться информация, которая может быть использована для проверки правильности завершения процесса запуска, могут быть некоторые светодиоды, указывающие состояние.

Подключите платы к источнику питания:

Используйте кабель micro-USB - USB-A для подключения каждой платы к концентратору USB. Вы можете пометить порты или определить порядок, если вам нужно отключить одну плату.

Шаг 22: Подайте питание

1. Вентилятор должен работать.

2. Платы должны быть подключены к коммутатору Ethernet.

3. Убедитесь, что платы подключены к концентратору USB.

4. Подайте питание на концентратор USB.

5. Включите DEMAC!

6. Прибыль!

Шаг 23. Программные ресурсы

MPI (интерфейс передачи сообщений)

MPI - это протокол связи для программирования параллельных компьютеров. Поддерживаются как двухточечная, так и коллективная связь.

www.open-mpi.org/

OpenMP (открытая мультиобработка)

Интерфейс прикладного программирования (API) OpenMP (Open Multi-Processing) поддерживает многоплатформенное многопроцессорное программирование с общей памятью на C, C ++ и Fortran на многих платформах. Он состоит из набора директив компилятора, библиотечных процедур и переменных среды, которые влияют на поведение во время выполнения.

www.openmp.org/

Программное обеспечение Parallella

Разработчики предоставляют стек программного обеспечения с открытым исходным кодом, включая SDK для взаимодействия с ускорителем.

www.parallella.org/software/

Вы также можете найти руководства и более подробную информацию.

У них также есть репозитории GitHub:

github.com/parallella

Не стесняйтесь загружать и запускать некоторые из примеров, одна из моих любимых - это игра жизни, основанная на знаменитой «Игре жизни» Конвея.

Отказ от ответственности: определения могут быть скопированы из Википедии

Рекомендуемые: