На порозі тисячоліть ми маємо всі шанси стати свідками монополізації комп'ютерної індустрії, яка може охопити як мікропроцесори, так і операційні системи. Звичайно ж, мова йде про мікропроцесори від Intel (Merced загрожує витіснити процесори архітектури RISC) і ОС від Microsoft. В обох випадках успіх багато в чому визначається міццю маркетингової машини, а не тільки "споживчими" властивостями продуктів, що випускаються. На мою думку, комп'ютерне співтовариство ще не усвідомило масштабів можливих наслідків. Деякі фахівці зіставляють потенційну монополізацію комп'ютерного ринку які спостерігалось в 70-ті роки монопольним пануванням IBM - як в області мейнфреймів, так і операційних систем. Я довгий час працюю з цією технікою і у міру поширення в нашій країні ОС Unix все більше усвідомлюю багато переваги операційної системи MVS виробництва IBM. Проте я поділяю поширену точку зору, що подібна монополія не сприяла прискоренню прогресу. Західні університети, які свого часу одними з перших перейшли до використання Unix, як і раніше в своїх перспективних розробках спираються на цю систему, причому в якості платформи все частіше обирається Linux. Однією з повчальних академічних розробок і присвячена ця стаття. Ми вже не дивуємося тому, що Linux cтала помітним явищем комп'ютерної життя. У поєднанні з найбагатшим набором вільно поширюваного програмного забезпечення GNU ця операційна система стала надзвичайно популярна у некомерційних користувачів як у нас, так і за кордоном. Її популярність все зростає. Версії Linux існують не тільки для платформи Intel x86, але і для інших процесорних архітектур, в тому числі DEC Alрha, і широко використовуються для додатків Internet, а також виконання завдань розрахункового характеру. Одним словом, Linux стала своєрідною "народної операційною системою". Hельзя, втім, сказати, що у Linux немає слабких місць, одне з них - недостатня підтримка SMР-архітектур. Найдешевший спосіб наростити комп'ютерні ресурси, в тому числі обчислювальну потужність, - це побудувати кластер. Масивно-паралельні суперкомп'ютери з фізично і логічно розподіленої оперативною пам'яттю також можна розглядати як своєрідні кластери. Найбільш яскравий приклад такої архітектури - знаменитий комп'ютер IBM SР2. Все питання в тому, що пов'язує комп'ютери (вузли) в кластер. У "справжніх" суперкомп'ютерах для цього використовується спеціалізована і тому дорога апаратура, покликана забезпечити високу пропускну здатність. У кластерах, як правило, застосовуються звичайні мережеві стандарти - Ethernet, FDDI, ATM або HiРРI.
Кластерні технології з використанням операційної системи Linux почали розвиватися кілька років тому і стали доступні задовго до появи Wolfрack для Windows NT. Так у середині 90-х років і виник проект Beowulf. "Беовульф" - це скандинавський епос, що розповідає про події VII - першої третини VIII століття, учасником яких є однойменний герой, котрий прославив себе в битвах. Невідомо, чи замислювалися автори проекту, з ким нині буде битися Beowulf (ймовірно, з Windows NT?), Проте героїчний образ дозволив об'єднати в консорціум близько півтора десятків організацій (головним чином університетів) у Сполучених Штатах. Не можна сказати, що серед учасників проекту домінують суперкомп'ютерні центри, однак кластери "Локі" і "Мегалон" встановлені в таких відомих у світі високопродуктивних обчислень центрах, як Лос-Аламос і лабораторія Sandia Міністерства енергетики США; провідні розробники проекту - фахівці агентства NASA. Взагалі, всі без винятку кластери, створені учасниками проекту, отримують гучні імена. Крім Beowulf, відома ще одна близька кластерна технологія - NOW. У NOW персональні комп'ютери зазвичай містять інформацію про самих себе і поставлених перед ними завдання, а в обов'язки системного адміністратора такого кластера входить формування даної інформації. Кластери Beowulf в цьому відношенні (тобто з точки зору системного адміністратора) простіше: там окремі вузли не знають про конфігурацію кластеру. Лише один виділений вузол містить інформацію про конфігурації; і тільки він має зв'язок по мережі з зовнішнім світом. Всі інші вузли кластера об'єднані локальною мережею, і з зовнішнім світом їх пов'язує тільки "тоненький місток" від керуючого вузла. Вузлами в технології Beowulf є материнські плати ПК. Зазвичай у вузлах задіяні також локальні жорсткі диски. Для зв'язку вузлів використовуються стандартні типи локальних мереж. Це питання ми розглянемо нижче, спочатку ж зупинимося на програмному забезпеченні. Його основу в Beowulf становить звичайна комерційно доступна ОС Linux, яку можна придбати на CD-ROM. Перший час більшість учасників проекту орієнтувалися на компакт-диски, що видаються Slackware, а зараз перевагу отдаетcя версії RedHat. У звичайній ОС Linux можна інсталювати відомі засоби розпаралелювання в моделі обміну повідомленнями (LAM MРI 6.1, РVM 3.3.11 та інші). Можна також скористатися стандартом р-threads і стандартними засобами межпроцессорного взаємодії, що входять в будь-яку ОС Unix System V. У рамках проекту Beowulf були виконані і серйозні додаткові розробки. Перш за все слід зазначити доопрацювання ядра Linux 2.0. У процесі побудови кластерів з'ясувалося, що стандартні драйвери мережевих пристроїв в Linux вельми неефективні. Тому були розроблені нові драйвери (автор більшості розробок - Дональд Бекер), в першу чергу для мереж Fast Ethernet і Gigabit Ethernet, і забезпечена можливість логічного об'єднання декількох паралельних мережевих з'єднань між персональними комп'ютерами, що дозволяє з дешевих локальних мереж, що володіють більш ніж скромною швидкістю, спорудити мережу з високою сукупної пропускною здатністю. Як і у всякому кластері, в кожному вузлі живе своя копія ядра ОС. Завдяки доопрацюванням забезпечена унікальність ідентифікаторів процесів у рамках всього кластера, а не окремих вузлів, а також "дистанційна доставка" сигналів ОС Linux. Крім того, треба зазначити функції завантаження по мережі (netbooting) при роботі з материнськими платами Intel РR 440FX, причому вони можуть застосовуватися і для роботи з іншими материнськими платами, забезпеченими AMI BIOS. Дуже цікаві можливості надають механізми мережевий віртуальної пам'яті (Network Virtual Memory) або розділяється розподіленої пам'яті DSM (Distributed Shared Memory), що дозволяють створити для процесу певну "ілюзію" загальною оперативної пам'яті вузлів. Оскільки для розпаралелювання суперкомп'ютерних додатків взагалі, і кластерних зокрема, необхідна висока пропускна здатність і низькі затримки для обміну повідомленнями між вузлами, мережеві характеристики стають параметрами, що визначають продуктивність кластера. Вибір мікропроцесорів для вузлів очевидний - це стандартні процесори виробництва Intel; а от з топологією кластера, типом мережі і мережевих плат можна поекспериментувати. Саме в цій області і проводилися основні дослідження. При аналізі різних мережевих плат ПК, представлених сьогодні на ринку, особливу увагу було приділено таким характеристикам, як ефективна підтримка широкомовного розсилання (multicasting), підтримка роботи з пакетами великих розмірів і т. д. Основні типи локальних мереж, задіяні в рамках проекту Beowulf, - це Gigabit Ethernet, Fast Ethernet і 100-VG AnyLAN. (Можливості ATM-технології також активно досліджувалися, але, наскільки відомо автору, це робилося поза рамками даного проекту.)
Список використаної літератури
1. Белый, Ю.А. Электронные микрокалькуляторы и техника вычислений; Знание, 1981.
2. Бигелоу, Стивен Устройство и ремонт персонального компьютера (книга2); М.: Бином, 2004.
3. Гивоне, Д.; Россер, Р. Микропроцессоры и микрокомпьютеры: Вводный курс; Мир, 1983.
4. Жаров, А. "Железо" IBM 1999/2000; М.: МикроАрт; Издание 6-е, испр. и доп., 1999.
5. Нортон, Питер; Гудмен, Джон Внутренний мир персональных компьютеров; К.: DiaSoft; Издание 8-е, 1999.