Вам потрібна машина, здатна проводити обчислення з точністю до сотень трильйонів знаків після коми за секунду? Або вам потрібна історія, яку можна розповісти в барах, про те, як суперкомп'ютер у вашому підвалі вибив пробки? Створення власного високопродуктивного Комп'ютера, або суперкомп'ютера-завдання, яке будь-який досвідчений гік може вирішити за вихідні при наявності вільного часу і деякої суми грошей. Висловлюючись технічною мовою, Сучасний мультипроцесорний суперкомп'ютер-мережа з комп'ютерів, які працюють паралельно для вирішення проблеми. У цій статті коротко описаний кожен крок процесу побудова такої мережі, увага приділяється "залозу" і програмного забезпечення.
Кроки
- В першу чергу визначитеся з тим, які компоненти і ресурси будуть потрібні.вам потрібен буде один головний вузол, мінімум десяток ідентичних обчислювальних вузлів, світч Ethernet, блок розподілу живлення і стійка. Визначте потужність проводки і охолодження, а також площа простору, які вам будуть потрібні. Також визначитеся, які IP адреси ви хочете використовувати для вузлів, яке ПО Ви поставите і які технології будуть потрібні для створення паралельних обчислювальних потужностей (докладніше про це нижче).
- Хоча "залізо" коштує дорого, всі наведені в статті програми поширюються безкоштовно, і більшість з них — з відкритим вихідним кодом.
- Якщо ви хочете дізнатися, наскільки швидким теоретично може бути ваш суперкомп'ютер, використовуйте цей інструмент:http://hpl-calculator.sourceforge.net /
- Змонтуйте ноди.вам потрібно буде зібрати вузли мережі або придбати попередньо зібрані сервери.
- Вибирайте рами для серверів з максимально раціональним використанням простору і енергії, а також з ефективним охолодженням.
- або ви можете "утилізувати" десяток або близько того б/у серверів, кілька застарілих — і нехай їх вага перевищує сумарну вагу комплектуючих, зате ви заощадите пристойну суму. Всі процесори, мережеві адаптери і Материнські плати повинні бути однакові, щоб комп'ютери добре працювали разом. Звичайно, не забудьте про RAM і жорсткі диски для кожної ноди, а також як мінімум про один оптичному приводі для головного вузла.
- Встановіть сервери в стійку.починайте знизу, щоб стійка не була перевантажена зверху. Вам знадобиться допомога друга-зібрані сервери можуть бути дуже важкими, і ставити їх в осередки, на яких вони тримаються в стійці, досить складно.
- Встановіть світч Ethernet поруч зі стійкою.варто відразу ж конфігурувати світч: встановіть розмір джамбо-кадрів 9000 байт, встановіть статичний IP адреса, який ви вибрали на кроці 1 і вимкніть непотрібні протоколи, такі як SMTP.
- Встановіть розподільник живлення (PDU, або Power Distribution Unit).залежно від того, яке максимальне навантаження видають ноди у вашій мережі, вам може знадобитися 220 вольт для високопродуктивного комп'ютера.
- Коли все встановлено, переходите до конфігурування.Linux по факту є основною системою для високопродуктивних (HPC) кластерів – він не тільки ідеально підходить в якості оточення для наукових обчислень, але вам ще й не доведеться платити за установку системи на сотні і навіть тисячі вузлів. Уявіть, у скільки обійшлася б установка Windows на всі ноди!
- Почніть з установки останньої версії BIOS для материнської плати і ПЗ від виробника, яке повинно бути однаковим для всіх серверів.
- Встановіть бажаний дистрибутив Linux на всі ноди, а на головний вузол — дистрибутив з графічним інтерфейсом. Популярні системи: CentOS, OpenSuse, Scientific Linux, RedHat і SLES.
- Автор дуже рекомендує використовувати Rocks Cluster Distribution. На додаток до установки всіх необхідних для кластера програм та інструментів, Rocks реалізує відмінний метод для швидкого 'перенесення' безлічі копій системи на аналогічні сервера з використанням PXE boot і процедури 'Kick Start' від Red Hat.
- Встановіть інтерфейс передачі повідомлень, менеджер ресурсів та інші необхідні бібліотеки.якщо ви не поставили Rocks на попередньому кроці, вам доведеться вручну встановлювати необхідне програмне забезпечення, щоб налаштувати логіку паралельних обчислень.
- Для початку вам знадобиться портативна система для роботи з bash, наприклад, Torque Resource Manager, який дозволяє розділяти і розподіляти завдання на кілька машин.
- Додайте до Torque ще Maui Cluster Scheduler, щоб закінчити установку.
- Далі вам потрібно встановити інтерфейс передачі повідомлень, який необхідний для того, щоб індивідуальні процеси в кожній окремій ноді використовували загальні дані. OpenMP-найпростіший варіант.
- Не забудьте про багатопотокові Математичні бібліотеки та компілятори, які будуть «збирати» ваші програми для розподілених обчислень. Я вже говорив, що вам варто просто поставити Rocks?
- З'єднайте комп'ютери в мережу. Головна нода посилає завдання для обчислення на підлеглі ноди, які в свою чергу повинні повернути результат назад, а також відправляти повідомлення один одному. І чим швидше все це відбувається, тим краще.
- Використовуйте приватну Ethernet мережу, щоб з'єднати всі ноди в кластер.
- Головна нода може також працювати в якості NFS, PXE, DHCP, TFTP і NTP сервера при підключенні до Ethernet.
- Ви повинні відокремити цю мережу від публічних, щоб бути впевненим, що пакети не перекриваються іншими в LAN.
- Протестуйте кластер.останнє, що вам варто зробити перед тим, як дати доступ користувачам до комп'ютерних потужностей — протестувати продуктивність. HPL (High Performance lynpack) benchmark - популярний варіант для вимірювання швидкості обчислень в кластері. Вам потрібно скомпілювати ПО з вихідних з найвищим ступенем оптимізації, яку дозволяє ваш компілятор для тієї архітектури, яку ви вибрали.
- Ви повинні, звичайно, компілювати з усіма можливими настройками оптимізації, які доступні для платформи, яку ви вибрали. Наприклад, при використанні AMD CPU компілюйте в Open64 і рівнем оптимізації -0.
- Порівняйте отримані результати з TOP500.org, щоб зіставити свій кластер з 500 найшвидшими суперкомп'ютерами в світі!
Поради
- IPMI може спростити адміністрування великого кластера, надавши KVM-over-IP, віддалене управління живленням і багато іншого.
- Для отримання дійсно високої швидкості роботи погляньте на інтерфейс InfiniBand network. Але будьте готові оплатити преміальний доступ.
- Використовуйте Ganglia для моніторингу навантаження на окремі ноди.
Попередження
- Переконайтеся, що інфраструктура приміщення (проводка і так далі) витримає навантаження.