Современные информационные технологии /2. Вычислительная техника и
программирование
Мясіщев О.А., Римар О.П.
Хмельницький національний
університет, Україна
Обчислювальні кластери Beowulf
Кластер
– це група комп'ютерів, об'єднаних в локальну
обчислювальну мережу (ЛОМ), що здатні працювати як єдиний обчислювальний
ресурс. Додатково передбачається, що для кластера забезпечується вища надійність і
ефективність, ніж для ЛОМ, і істотно нижча вартість порівняно з іншими типами
паралельних обчислювальних систем (за рахунок використання типових апаратних і
програмних рішень).
Тема
збільшення швидкості обчислень вельми актуальна для всіх, чия діяльність
пов'язана з великим об'ємом обчислювальних робіт (фізика, хімія, біологія,
астрономія). Так, наприклад, розрахунок гравітуючих газових дисків часто
вимагає декількох місяців безперервного рахунку на машині класу iPIII. Для
виконання таких обчислень необхідне використання суперкомп’ютерів. Але у навчальних
закладів і дослідницьких інститутів найчастіше немає засобів для закупівлі потужних комп'ютерів типу nCube, Cray або
подібних. Проте з розвитком програмного забезпечення і появою вільно
поширюваної операційної системи Linux стало можливим створити обчислювальний
комплекс з ефективною швидкодією, порівнянною з швидкодією суперкомп'ютерів,
але за вартістю в десятки
разів менше.
Незважаючи на нестачу коштів, парк більш-менш сучасних персональних комп'ютерів в багатьох наукових організаціях є. Закономірно з'явилася ідея створення паралельних обчислювальних систем із загальнодоступних комп'ютерів на базі процесорів Intel і недорогих Ethernet-мережах, встановивши на ці комп'ютери Linux (безкоштовна ОС) і, об'єднавши за допомогою однієї з безкоштовно поширюваних комунікаційних бібліотек (PVM, а потім MPI) ці комп'ютери в кластер. Виявилось, що в багатьох класах задач і при достатній
кількості вузлів такі системи дають продуктивність, порівнянну з тією, що можна
отримати, використовуючи дорогі суперкомп'ютери. За відсутності
висококваліфікованих паралельних програмістів, кластери Beowulf створюються і
використовуються людьми з мінімальним досвідом паралельного програмування.
Beowulf - це мультикомп’ютерная архітектура, яка може
використовуватися для паралельних обчислень. Це система, що зазвичай
складається з одного серверного вузла і одного або більш клієнтських вузлів,
сполучених за допомогою Ethernet або деякої іншій мережі. Структурна схема типового кластера представлена
на рис.1.
Рис1. Структурна
схема кластера
Це система, побудована з
готових промислових компонент, наприклад ПК (персональних комп’ютерів), на яких
може працювати ОС Linux, стандартних адаптерів Ethernet і комутаторів. Вона не містить специфічних апаратних
компонентів і легко відтворювана. Beowulf також використовує програмні продукти, такі як ОС Linux, середовища програмування Parallel Virtual Machine (PVM)
і Message Passing Interface (MPI).
Серверний вузол управляє всім кластером і є файл-сервером для клієнтських вузлів. Він також є
консоллю кластера і шлюзом в зовнішню мережу. Великі системи Beowulf можуть мати більше ніж один
серверний вузол, а також можливо спеціалізовані вузли, наприклад, консолі або
станції моніторингу. В більшості випадків клієнтські вузли в Beowulf пасивні. Вони конфігуруються і
управляються серверними вузлами і виконують тільки те, що вказане серверним
вузлом. У бездисковій
конфігурації клієнтів, клієнтські вузли навіть не мають IP-адрес або імен, поки їх не призначить
сервер. Лише один виділений вузол (консоль) містить інформацію про
конфігурацію; і лише він має зв'язок по мережі із зовнішнім світом. Решта всіх
вузлів кластера об'єднана локальною мережею, і із зовнішнім світом їх зв'язує
тільки "тонкий місток" від вузла, що управляє.
Одна з основних
відмінностей Beowulf від кластера
робочих станцій полягає також в тому, що Beowulf працює як одна машина. В більшості випадків
клієнтські вузли не мають клавіатур і моніторів, і можуть бути доступні тільки
через видалене підключення. Вузли Beowulf можуть розглядатися як елементи процессор+память, які вставляються в кластер так само
як процесор або модуль пам'яті вставляються в материнську плату.
Комплекс працює під
операційною системою Linux. Відмова від використання яких-небудь спеціальних hardware-компонентів робить архітектуру Beowulf легко відтворюваною і такою, що має
унікальне співвідношення швидкодія/вартість.
Beowulf - це не специфічний пакет програм,
нова топологія мережі або новітня модифікація ядра ОС. Beowulf - це технологія кластеризації
комп'ютерів, що працюють під управлінням ОС Linux в різновид паралельного, віртуального суперкомп'ютера. Хоча
існує багато програмних пакетів, таких як модифікації ядра, бібліотеки PVM і MPI і конфігураційні утиліти, які роблять архітектуру Beowulf швидшою, простішою в конфігурації і
ефективною, можна побудувати машину класу Beowulf, використовуючи тільки стандартний дистрибутив Linux, без будь якого додаткового математичного забезпечення. Якщо
є два сполучені мережею комп'ютера під ОС Linux, які розділяють щонайменше файлову систему /home за
допомогою NFS, і дозволяють
один одному виконувати віддалений шелл (rsh),
то можна говорити, що це простий кластер Beowulf з двох вузлів.
Вузли кластера. Відповідним вибором в даний момент є системи на базі
процесорів Intel Pentium 4. Варто встановити на кожен вузол
не менше 512-1024MB
оперативної пам'яті. Одну з машин слід виділити як центральну (консоль
кластера) куди можна (але не обов'язково) встановити достатньо великий жорсткий
диск, можливо потужніший процесор і більше пам'яті, ніж на решту (робочих)
вузлів. Робити консоль кластера потужнішою машиною має сенс, якщо ви захочете
мати на цьому комп'ютері окрім інтерфейса командного рядка зручніше операційне
оточення, наприклад віконний менеджер (KDE, Gnome), офісні програми, програми візуалізації даних і тому подібне.
Має сенс забезпечити зв'язок (захищений) цієї машини із зовнішнім
світом. Іншими словами, мережа кластера (мережа складається з консолі кластера
і робочих вузлів) топологічно не повинна знаходиться усередині корпоративної
мережі. Якщо необхідно забезпечити доступ до консолі кластера з корпоративної
мережі і/або Інтернет, то в цьому випадку, зв'язок повинен йти через окрему
мережеву карту, встановлену в головному комп'ютері, і окремий комутатор.
При комплектації робочих
вузлів цілком можливо відмовитися від жорстких дисків - ці вузли
завантажуватимуть ОС через мережу з центральної машини, що, окрім економії
засобів, дозволяє конфігурувати ОС і все необхідне ПО тільки один раз (на
центральній машині). Якщо ці вузли одночасно не використовуватимуться як
призначені для користувача робочі місця, немає необхідності встановлювати на
них відеокарти і монітори. Можлива установка вузлів в стійки (rackmounting), що дозволить зменшити місце,
займане вузлами, але коштуватиме дещо дорожче.
Можлива організація
кластерів на базі вже існуючих мереж робочих станцій, тобто робочі станції
користувачів можуть використовуватися як вузли кластера вночі і в неробочі дні.
Системи такого типу називають COW (Cluster of Workstations). В цьому випадку реальним
представляється варіант, коли кластер будується на основі існуючого
комп'ютерного класу.
В принципі, для
кластерних систем типу COW
немає насущної необхідності зупиняти кластер (і завдання, що на нім
виконуються) на денний (робочий) час, коли за вузловими машинами працюють
користувачі. Робота паралельних програм звичайно сповільнюватиметься, але це не
летально. Інша справа, якщо робота кластера помітно гальмуватиме і утруднятиме
роботу користувачів.
Мережа. Для отримання хорошої продуктивності
міжпроцесорних обмінів використовують повнодуплексні Fast Ethernet на 100Mbit/sec або Gigabit Ethernet. При цьому для зменшення числа колізій або
встановлюють декілька "паралельних" сегментів Ethernet, або сполучають вузли кластера через
комутатор (switch). Під
"паралельними" сегментами мається на увазі така структура мережі,
коли кожен вузол кластера має більше ніж одну мережеву карту, які за допомогою
спеціальних драйверів об'єднуються в один віртуальний мережевий інтерфейс, що
має сумарну пропускну спроможність. Для того, щоб уникнути проблем з
конфігурацією такого віртуального інтерфейса, слід використовувати однакові мережеві карти на всіх
машинах кластера. Крім того, кожна паралельна лінія такого інтерфейса повинна бути Ethernet-мережею, побудованою на окремому (від інших
паралельних їй ліній) комутаторі.
Отже,
як бачимо, компонентами кластера Beowulf є типові апаратні і програмні компоненти. Крім того
використовуване програмне забезпечення є безкоштовним. Тому можна зробти
висновок: кластери Beowulf є оптимальним рішенням для побудови недорогих високопродуктивних
паралельних обчислювальних комплексів, що можуть бути використані як в наукових
дослідженнях так і в навчанні.
Література :
2. http://linux-cluster.org.ru