Інтернет Windows Android

Кластерні системи в наукових обчисленнях. кластерні системи

Кластерні технології вже давно стали доступні і рядовим організаціям. Це стало можливим завдяки використанню в кластерах початкового рівня недорогих серверів Intel, стандартних засобів комунікації і широко поширених ОС. Кластерні рішення на платформах Microsoft орієнтовані насамперед на боротьбу з помилками оператора, відмовами обладнання і ПЗ. Кластерні рішення - дієвий засіб для вирішення цих проблем.

З розвитком комп'ютерної техніки ступінь її інтеграції в бізнес-процеси підприємств і діяльність організацій різко зросла. З'явилася проблема різкого збільшення часу, протягом якого доступні обчислювальні ресурси, і це набуває все більшої актуальності. Надійність серверів стає одним з ключових чинників успішної роботи компаній з розвиненою мережевою інфраструктурою, Особливо це важливо для великих підприємств, в яких спеціальні системи здійснюють підтримку виробничих процесів в реальному часі, для банків з розгалуженою філіальною мережею, або центрів обслуговування телефонного оператора, що використовують систему підтримки прийняття рішень. Всім таким підприємствам необхідні сервери, які працюють безперервно і надають кожен день інформацію 24 години без перерв.

Вартість простою обладнання для підприємства постійно зростає, так як вона складається з вартості втраченої інформації, втраченої прибутку, вартості технічної підтримки і відновлення, незадоволеності клієнтів і т. Д. Як створити надійну систему і скільки потрібно витрат на вирішення цієї проблеми? Існує ряд методик, які дозволяють обчислити вартість хвилини простою для даного підприємства і потім на основі цього розрахунку можна вибрати найбільш прийнятне рішення з найкращим співвідношенням ціни і функціональності.

Існує чимало варіантів і засобів для побудови надійної системи обчислювальної системи. Дискові масиви RAID, резервні блоки живлення, наприклад, «страхують» частина обладнання системи на випадок відмови інших аналогічних компонентів системи, і дозволяють не переривати обробку запитів до інформації при відмовах. Джерела безперебійного живлення підтримають працездатність системи в разі збоїв в мережі енергопостачання. Багатопроцесорні системні плати забезпечать функціонування сервера в разі відмови одного процесора. Однак жоден з цих варіантів не врятує, якщо з ладу вийде вся обчислювальна система цілком. Ось тут на допомогу приходить кластеризація.

Історично, першим кроком до створення кластерів вважають широко поширені свого часу системи "гарячого" резерву. Одна або дві такі системи, що входять в мережу з кількох серверів, не виконують ніякої корисної роботи, але готові почати функціонувати, як тільки вийде з ладу будь-яка з основних систем. Таким чином, сервери дублюють один одного на випадок відмови або поломки одного з них. Але хотілося б, щоб при об'єднанні кількох комп'ютерів, вони не просто дублювали один одного, а й виконували іншу корисну роботу, розподіляючи навантаження між собою. Для таких систем у багатьох випадках як не можна краще підходять кластери.

Спочатку кластери використовувалися тільки для потужних обчислень і підтримки розподілених баз даних, особливо там, де потрібна підвищена надійність. Надалі їх стали застосовувати для сервісу Web. Однак зниження цін на кластери призвело до того, що подібні рішення все активніше використовують і для інших потреб. Кластерні технології нарешті стали доступні рядовим організаціям - зокрема, завдяки використанню в кластерах початкового рівня недорогих серверів Intel, стандартних засобів комунікації і поширених операційних систем (ОС).

Кластерні рішення на платформах Microsoft орієнтовані насамперед на боротьбу з відмовами обладнання та програмного забезпечення (ПО). Статистика відмов подібних систем добре відома: тільки 22% з них безпосередньо викликано відмовами обладнання, ОС, харчування сервера і т. П. Для виключення цих чинників застосовуються різні технології підвищення відмовостійкості серверів (резервуються і замінні в гарячому режимі диски, джерела живлення, плати в роз'ємах PCI і т. д.). Однак 78%, що залишилися інцидентів викликані зазвичай відмовами додатків і помилками оператора. Кластерні рішення - дієвий засіб для вирішення цієї проблеми.

Кластери дозволяють побудувати унікальну архітектуру, що володіє достатньою продуктивністю, стійкістю до відмов апаратури і ПО. Така система легко масштабується і модернізується універсальними засобами, на основі стандартних компонентів і за помірну ціну, яка значно менше, ніж ціна унікального отказоустойчивого комп'ютера або системи з масовим паралелізмом).

Термін "кластер" має на увазі і відмовостійкість, і масштабованість, і керованість. Можна дати і класичне визначення кластера: «кластер - це паралельна або розподілена система, що складається з декількох пов'язаних між собою комп'ютерів і при цьому використовується як єдиний, уніфікований комп'ютерний ресурс». Кластер являє собою об'єднання декількох комп'ютерів, які на певному рівні абстракції управляються і використовуються як єдине ціле. На кожному вузлі кластера (вузол зазвичай це комп'ютер, що входить до складу кластера) знаходиться своя власна копія ОС. Нагадаємо, що системи з архітектурою SMP і NUMA, що мають одну загальну копію ОС, Не можна вважати кластерами. Вузлом кластера може бути як однопроцесорний, так і багатопроцесорний комп'ютер, причому в межах одного кластера комп'ютери можуть мати різну конфігурацію (різну кількість процесорів, різні обсяги ОЗУ і дисків). Вузли кластера з'єднуються між собою або за допомогою звичайних мережевих з'єднань (Ethernet, FDDI, Fibre Channel), або за допомогою нестандартних спеціальних технологій. Такі внутрікластерние, або міжвузлові з'єднання дозволяють вузлів взаємодіяти між собою незалежно від зовнішньої мережевої середовища. За внутрікластерним каналах вузли не тільки обмінюються інформацією, але і контролюють працездатність один одного.

Існує і більш широке визначення кластера: «кластер - це система, що діє як одне ціле, що гарантує високу надійність, що має централізоване управління всіма ресурсами і загальну файлову систему і, крім того, забезпечує гнучкість конфігурації і легкість в нарощуванні ресурсів».

Як уже зазначалося, основне призначення кластера полягає в забезпеченні високого - порівняно з розрізненим набором комп'ютерів або серверів - рівня готовності (інакше званого рівнем доступності - High Availability, HA), а також високого ступеня масштабованості і зручності адміністрування. Підвищення готовності системи забезпечує роботу критичних для користувача додатків протягом максимально тривалого проміжку часу. До критичних можна віднести всі програми, від яких безпосередньо залежить здатність компанії отримувати прибуток, надавати сервіс або забезпечувати інші життєво важливі функції. Як правило, використання кластера дозволяє гарантувати, що в разі, якщо сервер або який-небудь додаток перестає нормально функціонувати, інший сервер в кластері, продовжуючи виконувати свої завдання , Візьме на себе роль несправного сервера (або запустить у себе копію несправного додатки) з метою мінімізації простою користувачів через несправність в системі.

Готовність зазвичай вимірюється у відсотках часу, проведеному системою в працездатному стані, від загального часу роботи. Різні програми вимагають різної готовності від обчислювальної системи. Готовність системи може бути збільшена різними методами. Вибір методу здійснюється в залежності від вартості системи і вартості для підприємства часу простою. Існують досить дешеві рішення, які, як правило, фокусуються в основному на зниженні часу простою після виникнення несправності. Дорожчі забезпечують нормальне функціонування системи і надають сервіс користувачам навіть в тому випадку, коли один або кілька її компонентів вийшли з ладу. У міру зростання готовності системи її ціна збільшується нелінійно. Точно так же, нелінійно збільшується і вартість її підтримки. Системи з відносно низькою вартістю володіють недостатньо високим рівнем відмовостійкості - не більше 99% (це означає, що приблизно чотири дні в році інформаційна структура підприємства буде непрацездатна). Це не так вже й багато, якщо сюди входять і планові простої, пов'язані з проведенням профілактичних робіт або реконфигурацией.

Високий ступінь доступності (готовності) має на увазі таке рішення, яке здатне продовжувати функціонувати або відновлювати функціонування після виникнення більшості помилок без втручання оператора. Найбільш досконалі (і природно дорогі) відмовостійкі рішення здатні забезпечити 99,999% надійності системи, (т. Е. Не більше 5 хвилин простоїв на рік).

Між єдиними серверними системами з віддзеркалювати дисковими підсистемами (або дисковими масивами RAID) і відмовостійкими системами, «золоту середину» забезпечують кластерні рішення. За рівнем доступності вони наближаються до ВІДМОВОСТІЙКО системам при незрівнянно меншою вартістю. Такі рішення ідеальні для випадків, коли можна допустити лише дуже незначні незаплановані простої.

У разі збою кластерної системи відновленням управляє спеціальне програмне і апаратне забезпечення. Кластерний ПО Можна шукати одиничний апаратний або програмний збій, ізолювати його і відновити систему. Спеціально розроблені підпрограми здатні вибрати швидкий спосіб відновлення і за мінімальний час забезпечити працездатність служб. За допомогою вбудованого інструментального кошти розробки та програмного інтерфейсу можна створювати спеціальні програми, що виявляють, ізолюючі і усувають збої, які виникають в додатках, розроблених користувачем.

Важливою перевагою кластеризації є забезпечення масштабованості. Кластер дозволяє гнучко збільшувати обчислювальну потужність системи, додаючи в нього нові вузли і не перериваючи при цьому роботи користувачів. Сучасні кластерні рішення передбачають автоматичний розподіл навантаження між вузлами кластера, в результаті чого один додаток може працювати на декількох серверах і використовувати їх обчислювальні ресурси. Типові додатки, експлуатовані на кластерах, це:

  • бази даних;
  • системи управління ресурсами підприємства (ERP);
  • засоби обробки повідомлень і поштові системи;
  • засоби обробки транзакцій через Web і Web-сервери;
  • системи взаємодії з клієнтами (CRM);
  • системи поділу файлів і друку.

Отже, кластер об'єднує кілька серверів, з'єднаних між собою спеціальним комунікаційним каналом, Часто званим системної мережею. Вузли кластера контролюють працездатність один одного і обмінюються специфічною інформацією, наприклад, про конфігурацію кластера, а також передають дані між загальними накопичувачами і координують їх використання.

контроль працездатності здійснюється за допомогою спеціального сигналу heartbeat ( "Пульс"). Цей сигнал вузли кластера передають один одному, щоб підтвердити своє нормальне функціонування. У невеликих кластерах heartbeat-сигнали передаються по тих же каналах, що і дані, в великих кластерних системах для цього виділяються спеціальні лінії. Кластерний ПО повинно отримувати сигнал "пульс" кожного сервера з певним часовим інтервалом - в разі його неотримання сервер вважається непрацюючим і кластер автоматично переконфигурирует. Автоматично вирішуються і конфлікти між серверами, коли при запуску кластера виникає проблема вибору "ведучого" сервера або групи серверів, завдання яких - сформувати новий кластер.

Для організації комунікаційного каналу кластера можуть використовуватися звичайні мережеві технології (Ethernet, Token Ring, FDDI, АТМ), що розділяються шини введення / виводу (SCSI або PCI), високошвидкісний інтерфейс Fibre Channel або спеціалізовані технології CI (Computer Interconnect), DSSI (Digital Storage System Interconnect) або Memory Channel.

DSSI-інтерфейс призначений для доступу до накопичувачів і для взаємодії систем між собою. Він схожий на мультіхостовий протокол SCSI-2, але володіє більшою продуктивністю і можливістю організації взаємодії комп'ютерів. DSSI-кластери підтримують засоби підвищення надійності системи, поділ ресурсів, розподілену файлову систему і прозорість. З точки зору управління і забезпечення безпеки DSSI-кластер видається єдиним доменом.

CI-інтерфейс - подвійна послідовна шина зі швидкістю обміну до 70 Мбіт / с. Він підключений до системи введення-виведення комп'ютера за допомогою інтелектуального контролера, здатного підтримувати роботу як з подвійною, так і з одинарної шиною, в залежності від вимог до надійності доступу для конкретного комп'ютера. Всі лінії зв'язку CI-інтерфейсу одним кінцем з'єднані з CI-інтегратором - спеціальним пристроєм, який відслідковує з'єднання з вузлами і конфігурації кластера.

Технологія Memory Channel дозволяє створювати високоефективну комунікаційне середовище, що забезпечує високошвидкісний (до 100 Мбайт / с) обмін повідомленнями між серверами в кластері.

Вимоги, що пред'являються до швидкодії комунікаційного каналу, залежать від ступеня інтеграції вузлів кластера і характеру роботи додатків. Якщо, наприклад, додатки в різних вузлах не взаємодіють один з одним і не здійснюють одночасний доступ до дискових накопичувачів, то вузли обмінюються між собою тільки контрольними повідомленнями, що підтверджують їх працездатність, а також інформацією про зміну конфігурації кластера, т. Е. Додаванні нових вузлів , перерозподілі дискових томів і т. п. Такий тип обміну не зажадає значних ресурсів межсоединения і цілком може задовольнитися простим 10-мегабітним каналом Ethernet.

Реальних кластерних конфігурацій існує величезна кількість. Є рішення, які представляють собою об'єднання декількох кластерів, та ще разом з додатковими пристроями. Кожен з варіантів відповідає вимогам відповідних різних додатків і, природно, різняться як за вартістю, так і складності реалізації. Широко використовуються такі топології кластерів, як зірка, кільце, N-N і ін. Але, яким би складним і екзотичним не був кластер, його можна кваліфікувати за двома критеріями:

Організація оперативної пам'яті вузлів кластера,

Ступінь доступності пристроїв введення-виведення, перш за все - дисків.

Що стосується оперативної пам'яті, то тут можливі два варіанти: або все вузли кластера мають незалежну оперативну пам'ять, Або у них існує загальна колективна пам'ять. Ступінь доступності пристроїв введення-виведення кластерів в основному визначається можливістю використання зовнішньої пам'яті з розділяються дисками, а це має на увазі, що будь-який вузол має прозорий доступ до файлової системи загального дискового простору. Крім розділяється дискової підсистеми на вузлах кластера можуть бути локальні диски, але в цьому випадку вони використовуються головним чином для завантаження ОС на вузлі. Такий кластер повинен мати спеціальну підсистему, звану розподілений менеджер блокувань (Distributed Lock Manager, DLM), для усунення конфліктів при одночасному записі в файли з різних вузлів кластера. В системах, де немає DLM, додатки не можуть паралельно працювати з одними і тими ж даними, і загальна дискова пам'ять, якщо така є, призначається одному з вузлів в конкретний момент часу.

У кластерах, які не підтримують одночасного доступу до зовнішньої пам'яті, всі вузли є повністю автономні сервери.У разі двох вузлів доступ до загальної пам'яті на дисках здійснюється за допомогою розділеної шини введення-виведення (рис. 1). Для кожного вузла така шина закінчується в дисковому масиві. У кожен момент часу тільки один вузол володіє загальною файловою системою. Якщо один з серверів вийде з ладу, контроль над шиною і розділяються дисками переходить до іншого вузла.

Мал. 1. Побудова кластера з двох вузлів.

Для компаній, що мають інтегровану інформаційну систему, де лише частина ресурсів задіяна для виконання критичних по надійності додатків, може бути застосована схема побудови кластера "активний - резервний" (рис. 2). У таку систему в найпростішому випадку входять активний сервер, що виконує найбільш важливі програми, і резервна машина, яка вирішує менш відповідальні завдання. При збої активного сервера на кожну програму автоматично переносяться на резервний, де додатки з нижчим пріоритетом припиняють функціонувати. Така конфігурація дозволяє виключити уповільнення роботи відповідальних додатків - користувачі просто не помітять ніяких змін (окремий випадок цієї схеми - конфігурація "пасивний - резервний", в якій резервний сервер не несе ніякого навантаження і знаходиться в режимі очікування).

Мал. 2. Побудова кластера типу «активний - резервний».

Існує і конфігурація «активний - активний», яка має на увазі виконання всіма серверами кластера окремих додатків однаково високого пріоритету, обчислювальні ресурси резервного сервера використовуються в повсякденній роботі. Перевага такого підходу полягає в тому, що користувач має в своєму розпорядженні високодоступних систему (сервер продубльований) і в той же час може використовувати всі обчислювальні ресурси кластера. Це дозволяє зменшити загальну вартість системи, віднесену до одиниці обчислювальної потужності. Додатки при збої переносяться з непрацюючою машини на решту, що, звичайно, позначається на загальній продуктивності. Кластери "активний - активний" можуть існувати тільки в якості виділених систем, на яких не можна запускати фонові завдання типу підтримки офісної роботи. Крім того, при побудові кластерів з активним резервним сервером можна мати повністю дубльовані сервери з їх власними окремими дисками. При цьому виникає необхідність постійно копіювати дані з основного сервера на резервний - це гарантує, що в разі виникнення збою резервний сервер буде мати правильні дані. Оскільки дані повністю продубльовані, клієнт може мати доступ до будь-якого сервера, що дозволяє говорити про балансуванню навантаження в подібному кластері. До того ж вузли такого кластера можуть бути рознесені географічно, що робить конфігурацію стійкою до катастроф. Даний підхід забезпечує дуже високий рівень доступності, але має і ряд наступних недоліків:

Необхідність постійно копіювати дані (це означає, що частина обчислювальних і мережних ресурсів буде безперервно витрачатися на синхронізацію);

Навіть найшвидший мережевий інтерфейс між серверами всередині кластера не виключає затримок при передачі інформації, що в кінцевому рахунку може привести до десинхронізації, якщо один сервер вийшов з ладу, і не всі транзакції, вироблені з його диском, відбилися на диску другого сервера.

У кластері без поділу ресурсів (Рис. 3) сервери з'єднані з одним дисковим масивом, але кожен з них керує своїм набором дисків. У разі виникнення несправності на одному з вузлів залишився сервер бере на себе управління його дисками. Такий метод усуває необхідність в постійній синхронізації даних між серверами і тим самим вивільняє додаткові обчислювальні і мережеві ресурси. Але в такій конфігурації диски стають єдиною точкою збою, тому зазвичай в цьому випадку використовуються накопичувачі із застосуванням технології RAID.

Мал. 3. Побудова кластера без поділюваних ресурсів.

У системах з повним поділом ресурсів (Рис. 4) всі сервери в кластері мають одночасний доступ до одного і того ж диску. Цей підхід має на увазі наявність ретельно розробленого ПЗ, яке забезпечує множинний доступ до одного носія. Як і в попередньому випадку, диски тут можуть бути єдиною точкою збою, тому і тут бажано застосування RAID-масивів. В даному варіанті відпадає необхідність в постійній синхронізації даних між серверами. Тим самим вивільняються додаткові обчислювальні і мережеві ресурси.

Мал. 4. Побудова кластера з розділяються ресурсами.

Всі виконувані кластером програми можна умовно поділити на кілька категорій. На будь-якому вузлі кластера можна запустити практично будь-яку звичайну програму. Більш того, одну і ту ж програму можна запускати на різних вузлах кластера. Однак кожна копія програми повинна використовувати свій власний ресурс (файлову систему), оскільки файлова система закріплюється за конкретним вузлом. Крім звичайного ПО для кластерів існують так звані істинно кластерні додатки. Такі програми як би розносяться по вузлах кластера, а між частинами програми, що функціонують на різних вузлах, організовується взаємодія. Істинно кластерні програми дозволяють распараллелить навантаження на кластер. Проміжну позицію займають додатки, розраховані на роботу в кластері. На відміну від істинно кластерних програм, в них явний паралелізм не використовується; фактично програма є звичайною, але вона може задіяти деякі можливості кластера, в першу чергу пов'язані з міграцією ресурсів.

Всі кластерні рішення на платформах Microsoft орієнтовані насамперед на боротьбу з відмовами обладнання та програмного забезпечення. Спеціальне програмне забезпечення - це те, що об'єднує сервери в кластери. Багато сучасні корпоративні додатки і ОС мають вбудовану підтримку кластеризації, але безперебійне функціонування і прозорість кластера може гарантувати тільки спеціальне ПЗ проміжного рівня. Воно відповідає:

За злагоджену роботу всіх серверів;

За вирішення виникаючих в системі конфліктів,

Забезпечує формування і реконфігурацію кластера після збоїв;

Забезпечує розподіл навантаження по вузлах кластера;

Обеспенчівает відновлення роботи додатків збійних серверів на доступних вузлах (failover - процедура міграції);

Здійснює моніторинг стану апаратної і програмної середовищ;

Дозволяє запускати на кластері будь-який додаток без попередньої адаптації до нової апаратної архітектурі.

Кластерний ПО зазвичай має кілька заздалегідь заданих сценаріїв відновлення працездатності системи, а також може надавати адміністратору можливості настройки таких сценаріїв. Відновлення після збоїв може підтримуватися як для вузла в цілому, так і для окремих його компонентів - додатків, дискових томів і т. Д. Ця функція автоматично ініціюється в разі системного збою, а також може бути запущена адміністратором, якщо йому, наприклад, необхідно відключити один з вузлів для реконфігурації.

До кластерним рішенням в сучасних обчислювальних системах крім підвищеної надійності і швидкодії, пред'являються ще кілька додаткових вимог:

Вони повинні забезпечувати єдине зовнішнє уявлення системи,

Високу швидкість резервного копіювання і відновлення даних,

Паралельний доступ до БД,

Володіти можливостями перенесення навантаження з аварійних вузлів на справні,

Мати засоби настройки високого рівня готовності, гарантувати відновлення після аварії.

Звичайно, використання декількох вузлів кластера, які одночасно звертаються до одних і тих же даних, збільшує складність процедури резервного копіювання та подальшого відновлення інформації. Перенесення навантаження з аварійного вузла на справний - це основний механізм забезпечення безперервної роботи додатків за умови оптимального використання ресурсів кластера. для ефективної спільної роботи кластерних систем і СУБД система повинна мати розподілений менеджер блокувань, Що забезпечує несуперечливе зміна бази даних під час вступу послідовності запитів з різних вузлів кластера. Налаштування конфігурації кластера з одночасним забезпеченням високої доступності додатків є досить складним процесом (це пов'язано зі складністю визначення правил, за якими ті чи інші додатки переносяться з аварійних вузлів кластера на справні). Кластерна система повинна дозволяти легко переносити додатки з одного вузла кластера на інший, а також відновлювати аварійне додаток на іншому вузлі. Користувач системи не зобов'язаний знати про те, що він працює з кластерної системою, тому для користувачів кластер повинен виглядати як єдиний комп'ютер. Він повинен мати єдину файлову систему для всіх вузлів, єдиний IP-адреса і єдине ядро \u200b\u200bсистеми.

Найнадійнішими є розподілені кластери. Навіть найнадійніші системи можуть вийти з ладу, якщо станеться, наприклад, пожежа, землетрус, повінь, або атака терористів. При глобальному масштабі сучасного бізнесу такі події не повинні йому шкодити, тому кластер може (або повинен) бути розподіленим.

всі провідні комп'ютерні компанії (Compaq, Dell, Hewlett-Packard, IBM, Sun Microsystems), пропонують власні кластерні рішення. Лідируючі позиції в сегменті UNIX-кластерів займає IBM, яка активно просуває свою базу даних DB2, фірма Sun активно просуває своє рішення Sun Cluster. Одним з найбільш активних гравців (як за кількістю сертифікованих для кластерів платформ, так і за різноманітністю самих кластерних рішень) визнають корпорацію Compaq, яка пропонувала практично повний асортимент кластерів на платформах Windows для відділу або віддаленого філії, для застосувань в інфраструктурі корпорації і для великих центрів обробки даних. Кластерний рішення Compaq TrueCluster Server максимально задовольняє сучасним вимогам, що пред'являються компаніями до подібної технології. Нове ПЗ дозволяє, наприклад, встановлювати базу даних на декількох пов'язаних разом серверах. Необхідність в такому об'єднанні виникає, наприклад, якщо потрібна велика ємність або потрібно скоротити час простою в разі збою на сервері, що досягається за рахунок перенесення операцій на інший сервер кластера. Це дозволяє значно скоротити витрати на апаратні платформи, роблячи економічно виправданим побудова кластерів з недорогих серверів стандартної архітектури навіть для відносно невеликих підприємств. Compaq і Oracle активно співпрацюють в області технологій і бізнесу, що дозволить створити більш масштабовану, керовану, надійну і економну кластерну платформу баз даних. Крім того, Oracle почала співпрацювати з Dell і Sun Microsystems, які пропонують замовникам попередньо сконфігуровані і протестовані системи, що працюють з ПО кластеризації від Oracle. Dell, наприклад, поставляє кластерне програмне забезпечення на протестованих серверах з ОС Windows і Linux.

На ринку корпоративних систем кластери відіграють одну з ключових ролей. У багатьох випадків у кластерних рішень просто немає гідної альтернативи. Реальна висока готовність і широка масштабованість кластерних інформаційних систем, дозволяє їм успішно вирішувати все більш складні завдання, і з ростом потреб, легко збільшувати обчислювальну потужність платформи з прийнятним для звичайних підприємств рівнем витрат.

Кластер (група комп'ютерів)

Кластери розподілу навантаження

Принцип їх дії будується на розподілі запитів через один або кілька вхідних вузлів, які перенаправляють їх на обробку в інші, обчислювальні вузли. Початкова мета такого кластера - продуктивність, однак, в них часто використовуються також і методи, що підвищують надійність. Подібні конструкції називаються серверними фермами. Програмне забезпечення (ПО) може бути як комерційним (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler), так і безкоштовним (OpenMosix, Sun Grid Engine, Linux Virtual Server).

обчислювальні кластери

Кластери використовуються в обчислювальних цілях, зокрема в наукових дослідженнях. Для обчислювальних кластерів істотними показниками є висока продуктивність процесора в операціях над числами з плаваючою точкою (flops) і низька латентність об'єднує мережі, і менш істотними - швидкість операцій введення-виведення, яка більшою мірою важлива для баз даних і web-сервісів. Обчислювальні кластери дозволяють зменшити час розрахунків, у порівнянні з одиночним комп'ютером, розбиваючи завдання на паралельно виконуються гілки, які обмінюються даними по зв'язує мережі. Одна з типових конфігурацій - набір комп'ютерів, зібраних із загальнодоступних компонентів, з встановленої на них операційною системою Linux, і пов'язаних мережею Ethernet, Myrinet, InfiniBand або іншими відносно недорогими мережами. Таку систему прийнято називати кластером Beowulf. Спеціально виділяють високопродуктивні кластери (Позначаються англ. Абревіатурою HPC Cluster - High-performance computing cluster). Список найпотужніших високопродуктивних комп'ютерів (також може позначатися англ. Абревіатурою HPC) Можна знайти в світовому рейтингу TOP500. У Росії ведеться рейтинг найпотужніших комп'ютерів СНД.

Системи розподілених обчислень (grid)

Такі системи не прийнято вважати кластерами, але їх принципи в значній мірі схожі з кластерної технологією. Їх також називають grid-системами. Головна відмінність - низька доступність кожного вузла, тобто неможливість гарантувати його роботу в заданий момент часу (вузли підключаються і відключаються в процесі роботи), тому завдання повинна бути розбита на ряд незалежних один від одного процесів. Така система, на відміну від кластерів, не схожа на єдиний комп'ютер, а служить спрощеним засобом розподілу обчислень. Нестабільність конфігурації, в такому випадку, компенсується великим числом вузлів.

Кластер серверів, організованих програмно

Кластерні системи займають гідне місце в списку найшвидших, при цьому значно виграючи у суперкомп'ютерів в ціні. На липень 2008 року на 7 місці рейтингу TOP500 знаходиться кластер SGI Altix ICE 8200 (Chippewa Falls, Вісконсін, США).

Порівняно дешеву альтернативу суперкомп'ютерів представляють кластери, засновані на концепції Beowulf, які будуються з звичайних недорогих комп'ютерів на основі безкоштовного програмного забезпечення. Один з практичних прикладів такої системи - Stone Soupercomputer (Оак Рідж, Теннессі, США,).

Найбільший кластер, що належить приватній особі (з 1000 процесорів), був побудований Джоном Коза (John Koza).

Історія

Історія створення кластерів нерозривно пов'язана з ранніми розробками в області комп'ютерних мереж. Однією з причин для появи швидкісного зв'язку між комп'ютерами стали надії на об'єднання обчислювальних ресурсів. На початку 1970-х рр. групою розробників протоколу TCP / IP і лабораторією Xerox PARC були закріплені стандарти мережевої взаємодії. З'явилася і операційна система Hydra ( «Гідра») для комп'ютерів PDP-11 виробництва DEC, створений на цій основі кластер був названий C.mpp (Піттсбург, шт. Пенсільванія, США,). Проте, тільки біля м були створені механізми, що дозволяють з легкістю користуватися розподілом завдань і файлів через мережу, здебільшого це були розробки в SunOS (операційній системі на основі BSD від компанії Sun Microsystems).

Першим комерційним проектом кластера став ARCNet, створений компанією Datapoint в м Прибутковим він не став, і тому будівництво кластерів не розвивалося до м, коли DEC побудувала свій VAXcluster на основі операційної системи VAX / VMS. ARCNet і VAXcluster були розраховані не тільки на спільні обчислення, але і спільне використання файлової системи і периферії з урахуванням збереження цілісності і однозначності даних. VAXCluster (званий тепер VMSCluster) - є невід'ємною компонентою операційної системи OpenVMS, що використовують процесори Alpha і Itanium.

Два інших ранніх кластерних продукту, які отримали визнання, включають Tandem Hymalaya (, клас HA) і IBM S / 390 Parallel Sysplex (1994).

Історія створення кластерів з звичайних персональних комп'ютерів багато в чому зобов'язана проекту Parallel Virtual Machine. В м це ПО для об'єднання комп'ютерів у віртуальний суперкомп'ютер відкрило можливість миттєвого створення кластерів. В результаті сумарна продуктивність усіх створених тоді дешевих кластерів обігнала по продуктивності суму потужностей «серйозних» комерційних систем.

Створення кластерів на основі дешевих персональних комп'ютерів, об'єднаних мережею передачі даних, продовжилося в м силами Американського аерокосмічного агентства (NASA), потім в м отримали розвиток кластери Beowulf, спеціально розроблені на основі цього принципу. Успіхи таких систем підштовхнули розвиток grid-мереж, які існували ще з моменту створення UNIX.

програмні засоби

Широко поширеним засобом для організації межсерверного взаємодії є бібліотека MPI, що підтримує мови та Fortran. Вона використовується, наприклад, в програмі моделювання погоди MM5.

Операційна система Solaris надає програмне забезпечення Solaris Cluster, яке служить для забезпечення високої доступності і безвідмовності серверів, що працюють під управлінням Solaris. Для OpenSolaris існує реалізація з відкритим кодом під назвою OpenSolaris HA Cluster.

Серед користувачів GNU / Linux популярні кілька програм:

  • distcc, MPICH і ін. - спеціалізовані засоби для розпаралелювання роботи програм. distcc допускає паралельну компіляцію в GNU Compiler Collection.
  • Linux Virtual Server, Linux-HA - вузлове ПО для розподілу запитів між обчислювальними серверами.
  • MOSIX, openMosix, Kerrighed, OpenSSI - повнофункціональні кластерні середовища, вбудовані в ядро, автоматично розподіляють завдання між однорідними вузлами. OpenSSI, openMosix і Kerrighed створюють між вузлами.

Кластерні механізми планується вмонтувати і в ядро \u200b\u200bDragonFly BSD, відгалужуючись в 2003 році від FreeBSD 4.8. У далеких планах також перетворення її в середу єдиної операційної системи.

Компанією Microsoft випускається HA-кластер для операційної системи Windows. Існує думка, що він створений на основі технології Digital Equipment Corporation, підтримує до 16 (з 2010 року) вузлів в кластері, а також роботу в мережі SAN (Storage Area Network). Набір API-інтерфейсів служить для підтримки розподілених додатків, є заготовки для роботи з програмами, які не передбачають роботи в кластері.

Windows Compute Cluster Server 2003 (CCS), випущений в червні 2006 року розроблений для високотехнологічних додатків, які вимагають кластерних обчислень. Видання розроблено для розгортання на безлічі комп'ютерів, які збираються в кластер для досягнення потужностей суперкомп'ютера. Кожен кластер на Windows Compute Cluster Server складається з одного або декількох керуючих машин, які розподіляють завдання і декількох підлеглих машин, що виконують основну роботу. У листопаді 2008 представлений Windows HPC Server 2008, покликаний замінити Windows Compute Cluster Server 2003.


кафедра 29 "Керуючі Інтелектуальні системи"

Реферат на тему:

кластерні системи

виконав:

студент групи К9-292

Попов І.А

МОСКВА 2001

1. Введення

2. Основні класи сучасних паралельних комп'ютерів

3. Кластерна архітектура паралельних комп'ютерів

4. Цілі створення кластерних систем

5. Відмовостійкі кластери

6. Високопродуктивні кластери

7. Проект Beowulf

8. Висновок

9. Література

Вступ

Розвиток багатопроцесорних обчислювальних систем

Розвиток традиційних архітектур побудови обчислювальних систем, таких як SMP, MPP, векторних паралельних систем йде досить швидкими темпами. Підвищується продуктивність, зростає надійність і відмовостійкість. Однак у цих архітектур є один недолік - вартість створюваних систем, часом недоступна для багатьох користувачів таких систем - освітніх та науково-дослідних організацій. Вона надає дуже високою через ускладнення апаратних і програмних складових системи, які потрібні для забезпечення таких темпів зростання проізводіельності. Однак потреба в обчислювальних ресурсах в даний час дуже висока в багатьох сферах наукової та практичної діяльності і для її забезпечення не вистачає ресурсів традиційних суперкомп'ютерних систем.

Кластерні системи виникли як більш дешеве рішення проблеми нестачі обчислювальних ресурсів, і грунтуються на використанні у своїй архітектурі широко поширених і відносно дешевих технологій, апаратних і програмних засобів, Таких як PC, Ethernet, Linux і т.д. Використання масових технології в кластерних системах стало можливим завдяки значному прогресу в розвитку компонентів звичайних обчислювальних систем, таких як центральні процесори, операційні системи, комунікаційні середовища.

Так як кластерні системи архітектурно є розвитком систем з масовим паралелізмом MPP, то головну роль в їх розвитку є прогрес в області мережевих технологій. До теперішнього часу з'явилися недорогі, але ефективні комунікаційні рішення. Це і зумовило швидке поява і розвиток кластерних обчислювальних систем. Також прогресу розвитку кластерних систем сприяли й інші чинники.

Продуктивність персональних комп'ютерів на базі процесорів Intel в останні роки також значно зросла. Такі комп'ютери стали створювати серйозну конкуренцію робочих станцій на базі більш дорогих і потужних RISC процесорів. Одночасно стала набувати все більшої популярності ОС Linux - безкоштовно розповсюджувана версія UNIX. При цьому в наукових організаціях та університетах, де і прикладних розробок за більшістю кластерних систем, як правило, є фахівці з ОС Linux.

Високий ступінь розвитку кластерних систем на сьогоднішний день показує той факт, що в списку найпотужніших суперкомп'ютерів світу Top500 - значиться 11 кластерних установок.


Основні класи сучасних паралельних комп'ютерів

Кластерні системи є розвитком паралельних систем. Щоб проказав місце кластерних систем серед інших типів паралельних архітектур обчислювальних систем потрібно привести їх класифікацію. Паралельні системи можуть бути класифікувати за різними критеріями.

З апаратної точки зору, основним параметром класифікації Паралельно комп'ютерів є наявність загальної (SMP) або розподіленої пам'яті (MPP). Щось середнє між SMP і MPP представляють собою NUMA-архітектури, де пам'ять фізично розподілена, але логічно загальнодоступна.

Симетричні мультипроцесорні системи

SMP система складається з декількох однорідних процесорів і масиву загальної пам'яті. Один з часто використовуваних в SMP архітектурах підходів для формування масштабується, загальнодоступної системи пам'яті, полягає в однорідної організації доступу до пам'яті за допомогою організації, що масштабується каналу пам'ять-процесори:

Кожна операція доступу до пам'яті інтерпретується як транзакція по шині процесори-пам'ять. Когерентність кешей підтримується апаратними засобами.

У SMP кожен процесор має принаймні одну власну кеш-пам'ять (а можливо, і кілька).

Можна сказати, що SMP система - це один комп'ютер з декількома рівноправними процесорами. Все інше - в одному екземплярі: одна пам'ять, одна підсистема введення / виводу, одна операційна система. Слово "рівноправний" означає, що кожен процесор може робити все, що будь-який інший. Кожен процесор має доступ до всієї пам'яті, може виконувати будь-яку операцію введення / виводу, переривати інші процесори і т.д.

Недоліком даної архітектури є необхідність організації каналу процесори-пам'ять з дуже високою пропускною здатністю.

Масивно-паралельні системи

Масивно-паралельна система MPP складається з однорідних обчислювальних вузлів, що включають в себе:

  • один або кілька центральних процесорів (Зазвичай RISC)
  • локальну пам'ять (прямий доступ до пам'яті інших вузлів неможливий)
  • комунікаційний процесор або мережевий адаптер
  • жорсткі диски і / або інші пристрої В / В

До системи можуть бути додані спеціальні вузли введення-виведення і керуючі вузли. Вузли зв'язані через деяку комунікаційне середовище (високошвидкісна мережа, комутатор і т.п.)

Системи з неоднорідним доступом до пам'яті NUMA

NUMA (nonuniform memory access) на відміну від звичної SMP архітектури з пам'яттю, що представляє собою кілька окремих процесорів, кожний з яких, крім власного кешу, володіє також локальною пам'яттю:

У подібній архітектурі процесор і модулі пам'яті тісно інтегровані, отже, швидкість доступу до локальної пам'яті набагато вище, ніж до пам'яті "сусіднього" процесора. Підсистеми введення-виведення можуть бути частиною кожного вузла або консолідовані на виділених вузлах вводу-виводу. Якщо у всій системі підтримується когерентність кешей, то таку архітектуру називають cc-NUMA.

Найпростіше охарактеризувати NUMA-систему, уявивши собі велику систему SMP, розділену на кілька частин, ці частини пов'язані комунікаційної магістраллю, підключеної до системних шин, і кожна частина включає власну основну пам'ять і підсистему введення / виводу. Це і є NUMA: велика SMP, розбита на набір більш дрібних і простих SMP. Основною проблемою NUMA є забезпечення когерентності кешей. Апаратура дозволяє працювати з усіма окремими пристроями основний пам'яті складових частин системи (званих зазвичай вузлами) як з єдиної гігантської пам'яттю.

кластерна архітектура

Розглянемо місце кластерної архітектури обчислювальних систем в даній класифікації.

Кластер - це пов'язаний набір повноцінних комп'ютерів, який використовується в якості єдиного ресурсу. Під поняттям "повноцінний комп'ютер" розуміється завершена комп'ютерна система, що володіє всім, що потрібно для її функціонування, включаючи процесори, пам'ять, підсистему введення / виводу, а також операційну систему, підсистеми, додатки і т.д. Зазвичай для цього годяться персональні комп'ютери або паралельні системи, які можуть володіти архітектурою SMP і навіть NUMA. Кластери є слабо зв'язаної системами, зв'язку вузлів використовується одна зі стандартних мережевих технологій (Fast / Gigabit Ethernet, Myrinet) на базі шинної архітектури або комутатора. Тому вони є більш дешевою в побудові модифікацією MPP архітектури.

Кластерна архітектура паралельних комп'ютерів

Загальні принципи

Як вже було сказано раніше обчислювальний кластер - це сукупність комп'ютерів, об'єднаних в рамках деякої мережі для вирішення однієї задачі (рис.3), яка для користувача представляється як єдиний ресурсу. Таку концепцію кластера вперше запропонувала і реалізувала на початку 80-х корпорація Digital Equipment, яка і до цього дня розвиває цю технологію

Поняття "єдиний ресурс" означає наявність програмного забезпечення, що дає можливість користувачам, адміністраторам і прикладним програмам вважати, що є тільки одна сутність, з якої вони працюють - кластер. Наприклад, система пакетної обробки кластера дозволяє послати завдання на обробку кластеру, а не якомусь окремому комп'ютеру. Більш складним прикладом є системи баз даних. Практично у всіх виробників систем баз даних є версії, що працюють в паралельному режимі на декількох машинах кластера. В результаті програми, які використовують базу даних, не повинні піклуватися про те, де виконується їх робота. СУБД відповідає за синхронізацію паралельно виконуваних дій і підтримку цілісності бази даних.

Комп'ютери, що утворюють кластер, - так звані вузли кластера - завжди відносно незалежні, що допускає зупинку або виключення будь-якого з них для проведення профілактичних робіт або установки додаткового обладнання без порушення працездатності всього кластера.

Як обчислювальних вузлів в кластері зазвичай використовуються однопроцесорні персональні комп'ютери, дво- або чотирипроцесорні SMP-сервери. Кожен вузол працює під управлінням своєї копії операційної системи, в якості якої найчастіше використовуються стандартні операційні системи: Linux, NT, Solaris і т.п. Склад і потужність вузлів може змінюватися навіть в рамках одного кластера, даючи можливість створювати неоднорідні системи. Вибір конкретної комунікаційного середовища визначається багатьма факторами: особливостями класу вирішуваних завдань, необхідністю подальшого розширення кластера і т.п. Можливе включення в конфігурацію спеціалізованих комп'ютерів, наприклад, файл-сервера, і, як правило, надана можливість віддаленого доступу на кластер через Internet.

З визначення архітектури кластерних систем слід, що вона включає в себе дуже широкий спектр систем. Розглядаючи крайні точки, кластером можна вважати як пару ПК, пов'язаних локальної 10-мегабитной мережею Ethernet, так і обчислювальну систему, створювану в рамках проекту Cplant в Національній лабораторії Sandia 1400 робочих станцій на базі процесорів Alpha, пов'язаних високошвидкісною мережею Myrinet.

Таким чином видно, що різних варіантів побудови кластерів дуже багато. При цьому в архітектурі кластера велике значення мають використовувані комунікаційні технології і стандарти. Вони багато в чому визначають коло завдань, для вирішення яких можна використовувати кластери, побудовані на основі цих технологій.

Комунікаційні технології побудови кластерів

Кластери можуть будується як на основі спеціалізованих високошвидкісних шин передачі даних, так і на основі масових мережевих технологій. Серед масових комунікаційних стандартів зараз найчастіше використовується мережа Ethernet або більш її продуктивний варіант - Fast Ethernet, як правило, на базі комутаторів. Однак великі накладні витрати на передачу повідомлень в рамках Fast Ethernet призводять до серйозних обмежень на спектр завдань, які можна ефективно вирішувати на такому кластері. Якщо від кластера потрібна велика продуктивність і універсальність, то необхідно застосовувати більш швидкісні і спеціалізовані технології. До них відносяться SCI, Myrinet, cLAN, ServerNet і ін. Порівняльна характеристика параметрів цих технологій наведена в
таблиці 1.

ServerNet

Fast Ethernet

Латентність (MPI)

Пропускна здатність (MPI)

180 Мбайт / c

Пропускна здатність (апаратна)

400 Мбайт / c

160 Мбайт / c

150 Мбайт / c

12,5 Мбайт / c

Реалізація MPI

HPVM, MPICH-GM і ін.

Таблиця 1.

Продуктивність комунікаційних мереж в кластерних системах визначається декількома числовими характеристиками. Основних характеристик дві: латентність - час початкової затримки при посилці повідомлень і пропускна здатність мережі, що визначає швидкість передачі інформації по каналах зв'язку. При цьому важливі не стільки пікові характеристики, заявлені в стандарті, скільки реальні, що досягаються на рівні користувача додатків, наприклад, на рівні MPI-додатків. Зокрема, після виклику користувачем функції посилки повідомлення Send () повідомлення послідовно пройде через цілий набір шарів, що визначаються особливостями організації програмного забезпечення та апаратури, перш, ніж покинути процесор - тому існує істотний разбром за стандартами значень латентності. Наявність латентності призводить до того, що максимальна швидкість передачі по мережі не може бути досягнута на повідомленнях з невеликою довжиною.

Швидкість передачі даних по мережі в рамках технологій Fast Ethernet і Scalable Coherent Interface (SCI) залежить від довжини повідомлення. Для Fast Ethernet характерна велика величина латентності - 160-180 мкс, в той час як латентність для SCI це величина близько 5,6 мкс. Максимальна швидкість передачі для цих же технологій 10 Мбайт / c і 80 Мбайт / с відповідно.

Цілі створення кластерних систем

Розробники архітектур кластерних систем приследовать різні цілі при їх створенні. Першою була фірма Digital Equipment з кластерами VAX / VMS. Метою створення цієї машини було підвищення надійності роботи системи, забезпечення високої готовності та відмовостійкості системи. В даний час існує безліч аналогічних по архітектурі систем від інших виробників.

Іншою метою створення кластерних систем є створення дешевих високопродуктивних паралельних обчислювальних систем. Один з перших проектів, що дав ім'я цілому класу паралельних систем - кластер Beowulf - виник в центрі NASA Goddard Space Flight Center для підтримки необхідними обчислювальними ресурсами проекту Earth and Space Sciences. Проект Beowulf почався влітку 1994 року, і незабаром був зібраний 16-процесорний кластер на процесорах Intel 486DX4 / 100 МГц. На кожному вузлі було встановлено по 16 Мбайт оперативної пам'яті і по 3 мережевих Ethernet-адаптера. Ця система виявилася дуже вдалою по відношенню ціна / продуктивність, тому таку архітектуру стали розвивати і широко використовувати в інших наукових організаціях і інститутах.

Для кожного класу кластерів характерні свої особливості архітекури і приємним апаратні засоби. Розглянемо їх більш детально.

відмовостійкі кластери

принципи побудови

Для забезпечення надійності та відмовостійкості обчислювальних систем застосовується безліч різних апаратурних і програмних рішень. Наприклад, в системі може дублюватися всі схильні до відмов елементи - джерела живлення, процесори, оперативна і зовнішня пам'ять. Такі відмовостійкі системи з резервуванням компонентів застосовуються для вирішення завдань, в яких недостатньо надійності звичайних обчислювальних систем, що оцінюється в теперішній момент ймовірністю безвідмовної роботи 99%. У таких завданнях потрібно ймовірність 99,999% і вище. Таку надійність можна досягти застосовуючи відмінні від наведеного вище методи підвищення відмовостійкості. Залежно від рівня готовності обчислювальної системи до використання виділяють чотири типи надійності:

Рівень готовності,%

Мaкс. час простою

Тип системи

3,5 дня на рік

Звичайна (Conventional)

8,5 годин на рік

Висока надійність (High Availability)

1 годину в рік

Відмовостійка (Fault Resilient)

5 хвилин на рік

Безвідмовна (Fault Tolerant)

Таблиця 2.

На відміну від відмовостійких систем з надлишковими компонентами, а також різних варіантів многопроцессорности, кластери об'єднують відносно незалежні один від одного машини, кожну з яких можна зупинити для профілактики або реконфигурирования, не порушуючи при цьому працездатності кластера в цілому. Висока продуктивність кластера і зведення до мінімуму часу простоїв додатків досягається завдяки тому, що:

  • в разі збою ПЗ на одному з вузлів додаток продовжує функціонувати або автоматично перезапускається на інших вузлах кластера;
  • вихід з ладу одного з вузлів (або декількох) не призведе до краху всієї кластерної системи;
  • профілактичні та ремонтні роботи, Реконфігурацію або зміну версій програмного забезпечення, як правило, можна здійснювати в вузлах кластера по черзі, не перериваючи роботи інших вузлів.

Невід'ємною частиною кластера є спеціальне програмне забезпечення, яке, власне, і вирішує проблему відновлення вузла в разі збою, а також вирішує інші завдання. Кластерний ПО зазвичай має кілька заздалегідь заданих сценаріїв відновлення працездатності системи, а також може надавати адміністратору можливості настройки таких сценаріїв. Відновлення після збоїв може підтримуватися як для вузла в цілому, так і для окремих його компонентів - додатків, дискових томів і т.д. Ця функція автоматично ініціюється в разі системного збою, а також може бути запущена адміністратором, якщо йому, наприклад, необхідно відключити один з вузлів для реконфігурації.

Кластери можуть мати поділювану пам'ять на зовнішніх дисках, Як правило, на дисковому масиві RAID. Дисковий масив RAID - це серверна підсистема вводу-виводу для зберігання даних великого обсягу. В масивах RAID значне число дисків відносно малій ємності використовується для зберігання великих обсягів даних, а також для забезпечення більш високої надійності і надмірності. Подібний масив сприймається комп'ютером як єдине логічне пристрій.

Відновлення після збоїв може підтримуватися як для вузла в цілому, так і для окремих його компонентів - додатків, дискових томів і т.д. Ця функція автоматично ініціюється в разі системного збою, а також може бути запущена адміністратором, якщо йому, наприклад, необхідно відключити один з вузлів для реконфігурації.

Вузли кластера контролюють працездатність один одного і обмінюються специфічної «кластерної» інформацією, наприклад, про конфігурацію кластера, а також передавати дані між розділяються накопичувачами і координувати їх використання. Контроль працездатності здійснюється за допомогою спеціального сигналу, який вузли кластера передають один одному, для того щоб підтвердити своє нормальне функціонування. Припинення подачі сигналів з одного з вузлів сигналізує кластерному програмному забезпеченню про який нещодавно трапився збій і необхідності перерозподілити навантаження на решту вузли. Як приклад розглянемо відмовостійкий кластер VAX / VMS.

Кластера VAX / VMS

Компанія DEC першої анонсувала концепцію кластерної системи в 1983 році, визначивши її як групу об'єднаних між собою обчислювальних машин, що представляють собою єдиний вузол обробки інформації. По суті VAX-кластер являє собою слабо зв'язаної багатомашинну систему із загальною зовнішньою пам'яттю, що забезпечує єдиний механізм управління та адміністрування.

VAX-кластер має такі властивості:

Поділ ресурсів. Комп'ютери VAX в кластері можуть розділяти доступ до загальних стрічковим і дискових накопичувачів. Всі комп'ютери VAX в кластері можуть звертатися до окремих файлів даних як до локальних.

Висока готовність. Якщо відбувається відмова одного з VAX-комп'ютерів, завдання його користувачів автоматично можуть бути перенесені на інший комп'ютер кластера. Якщо в системі є декілька контролерів HSC і один з них відмовляє, інші контролери HSC автоматично підхоплюють його роботу.

Висока пропускна здатність . Ряд прикладних систем можуть користуватися можливістю паралельного виконання завдань на декількох комп'ютерах кластера.

Зручність обслуговування системи . Загальні бази даних можуть обслуговуватися з єдиного місця. Прикладні програми можуть інсталюватися тільки один раз на загальних дисках кластера і розділятися між усіма комп'ютерами кластера.

Можливість розширення . Збільшення обчислювальної потужності кластера досягається підключенням до нього додаткових VAX-комп'ютерів. додаткові накопичувачі на магнітних дисках і магнітних стрічках стають доступними для всіх комп'ютерів, що входять в кластер.

Робота VAX-кластера визначається двома головними компонентами. Першим компонентом є високошвидкісний механізм зв'язку, а другим - системне програмне забезпечення, яке забезпечує клієнтам прозорий доступ до системного сервісу. Фізично зв'язку всередині кластера реалізуються за допомогою трьох різних шинних технологій з різними характеристиками продуктивності.

Основні методи зв'язку в VAX-кластер представлені на рис. 4.

Мал. 4 VAX / VMS-кластер

Шина зв'язку комп'ютерів CI (Computer Interconnect) працює зі швидкістю 70 Мбіт / с і використовується для з'єднання комп'ютерів VAX і контролерів HSC за допомогою комутатора Star Coupler. Кожна зв'язок CI має подвійні надлишкові лінії, дві для передачі і дві для прийому, використовуючи базову технологію CSMA, яка для усунення колізій використовує специфічні для даного вузла затримки. Максимальна довжина зв'язку CI становить 45 метрів. Зіркоподібний комутатор Star Coupler може підтримувати підключення до 32 шин CI, кожна з яких призначена для підключення комп'ютера VAX або контролера HSC. Контролер HSC є інтелектуальне пристрій, який управляє роботою дискових і стрічкових накопичувачів.

Комп'ютери VAX можуть об'єднуватися в кластер також за допомогою локальної мережі

Ethernet, використовуючи NI - Network Interconnect (так звані локальні VAX-кластери), проте продуктивність таких систем порівняно низька через необхідність ділити пропускну здатність мережі Ethernet між комп'ютерами кластера та іншими клієнтами мережі.

Також кластера можуть стоіться на основі шини DSSI (Digital Storage System Interconnect). На шині DSSI можуть об'єднуватися до чотирьох комп'ютерів VAX нижнього і середнього класу. Кожен комп'ютер може підтримувати кілька адаптерів DSSI. Окрема шина DSSI працює зі швидкістю 4 Мбайт / с (32 Мбіт / с) і допускає приєднання до 8 пристроїв. Підтримуються наступні типи пристроїв: системний адаптер DSSI, дисковий контролер серії RF і стрічковий контролер серії TF. DSSI обмежує відстань між вузлами в кластері 25 метрами.

Системне програмне забезпечення VAX-кластерів

Для гарантії правильного взаємодії процесорів один з одним при зверненнях до загальних ресурсів, таким, наприклад, як диски, компанія DEC використовує розподілений менеджер блокувань DLM (Distributed Lock Manager). дуже важливою функцією DLM є забезпечення когерентного стану дискових кешей для операцій введення / виводу операційної системи і прикладних програм. Наприклад, в додатках реляційних СУБД DLM несе відповідальність за підтримання узгодженого стану між буферами бази даних на різних комп'ютерах кластера.

Завдання підтримки когерентності кеш-пам'яті введення / виводу між процесорами в кластері подібна завданню підтримки когерентності кеш-пам'яті в сильно пов'язаної многопроцессорной системі, побудованої на базі деякої шини. Блоки даних можуть одночасно з'являтися в декількох кешах і якщо один процесор модифікує одну з цих копій, інші існуючі копії не відображають вже поточний стан блоку даних. Концепція захоплення блоку (володіння блоком) є одним із способів управління такими ситуаціями. Перш ніж блок може бути модифікований повинно бути забезпечено володіння блоком.

Робота з DLM пов'язана зі значними накладними витратами. Накладні витрати в середовищі VAX / VMS можуть бути великими, які вимагають передачі до шести повідомлень по шині CI для однієї операції введення / виводу. Накладні витрати можуть досягати величини 20% для кожного процесора в кластері.

високопродуктивні кластери

принципи побудови

Архітектура високопродуктивних кластерів з'явилася як розвиток принципів побудови систем MPP на менш продуктивних і масових компонентах, керованих операційною ситемой загального призначення. Кластери також як і MPP системи складаються з слабосвязанних вузлів, які можуть бути як однорідними, так і, на відміну від MPP, різними або гетерогенними. Особлива увага при проектуванні високопродуктивної кластерної архутектури приділяється забезпеченню високої ефективності комунікаційної шини, що зв'язує вузли кластера. Так як в кластерах нерідко застосовуються масові щодо низькопродуктивні шини, то доводиться приймати ряд заходів по виключенню їх низьку пропускну здатність на продуктивність кластерів і організацію ефективного розпаралелювання в кластері. Так наприклад пропускна здатність однієї з найбільш високошвидкісних технологій Fast Ethernet на порядки нижче, ніж у межсоединений в сучасних суперкомп'ютерах МРР-архітектури.

Для вирішення проблем низької продуктивності мережі застосовують кілька методів:

Кластер розділяється на кілька сегментів, в межах яких вузли з'єднані високопродуктивної шиною типу Myrinet, а зв'язок між вузлами різних сегментів здійснюється низькопродуктивні мережами типу Ethernet / Fast Ethernet. Це дозволяє разом зі скороченням витрат на комунікаційне середовище істотно підвищити продуктивність таких кластерів при вирішенні завдань з інтенсивним обміном даними між процесами.

Застосування так званого «транкинга», тобто об'єднання декількох каналів Fast Ethernet в один загальний швидкісний канал, що з'єднує кілька комутаторів. Очевидним недоліком такого підходу є «втрата» частини портів, задіяних в межсоединения комутаторів.

Для підвищення продуктивності створюються спеціальні протоколи обміну інформацією з таких мереж, які дозволяють більш ефективно використовувати пропускну здатність каналів і знімають деякі обмеження накладаються стандартними протоколами (TCP / IP, IPX). Такий метод часто використовують в ситема класу Beowulf.

Основним якістю, яким повинен володіти високопродуктивний кластер являтся горизонтальна масштабованість, так як одним з головних переваг, які надає кластерна архітектура є можливість нарощувати потужність існуючої системи за рахунок простого додавання нових вузлів в систему. Причому збільшення потужності відбувається практично пропорційно потужності доданих ресурсів і може проводитися без зупинки системи під час її функціонування. У системах з іншою архітектурою (зокрема MPP) зазвичай можлива тільки вертикальна масштабованість: додавання пам'яті, збільшення числа процесорів в багатопроцесорних системах або додавання нових адаптерів або дисків. Воно дозволяє тимчасово поліпшити продуктивність системи. Однак в системі буде встановлено максимальне підтримуване кількість пам'яті, процесорів або дисків, системні ресурси будуть вичерпані, і для увеличеие продуктивності доведеться створювати нову систему або істотно переробляти стару. Кластерна система також допускає вертикальну масштабованість. Таким чином, за рахунок вертикального і горизонтального масштабування кластерна модель забезпечує більшу гнучкість і простоту збільшення продуктивності систем.

проект Beowulf

Beowulf - це скандинавський епос, що оповідає про події VII - першої третини VIII століття, учасником яких є однойменний герой, котрий прославив себе в боях.

Одним із прикладів реалізації кластерної системи такої структури є кластери Beowulf. Проект Beowulf об'єднав близько півтора десятка організацій (головним чином університетів) в Сполучених Штатах. Провідні розробники проекту - фахівці агентства NASA. В даному виді кластерів можна виділити наступні основні особливості:

Кластер Beowulf складається з декількох окремих вузлів, об'єднаних в загальну мережу, Загальні ресурси вузлами кластера не використовуються;

Оптимальним вважається побудова кластерів на базі двопроцесорних SMP систем;

Для зменшення накладних витрат на взаємодію між вузлами застосовують повнодуплексний 100 MB Fast Ethernet (рідше використовують SCI), створюють кілька мережевих сегментів або з'єднують вузли кластера через комутатор;

Як програмне забезпечення застосовують ОС Linux, і безкоштовно поширювані комунікаційні бібліотеки (PVM і MPI);

Історія проекту Beowulf

Проект почався влітку 1994 року в науково-космічному центрі NASA - Goddard Space Flight Center (GSFC), точніше в створеному на його основі CESDIS (Center of Excellence in Space Data and Information Sciences).

Перший Beowulf-кластер був створений на основі комп'ютерів Intel архітектури під ОС Linux. Це була система, що складається з 16 вузлів (на процесорах 486DX4 / 100MHz, 16MB пам'яті і 3 мережевих адаптера на кожному вузлі, 3 "паралельних" Ethernet-кабелю по 10Mbit). Він створювався як обчислювальний ресурс проекту "Earth and Space Sciences Project" (ESS).

Далі в GSFC і інших підрозділах NASA були зібрані інші, більш потужні кластери. Наприклад, кластер theHIVE (Highly-parallel Integrated Virtual Environment) містить 64 вузла по 2 процесора Pentium Pro / 200MHz і 4GB пам'яті в кожному, 5 комутаторів Fast Ethernet. Загальна вартість цього кластера становить приблизно $ 210 тис. У рамках проекту Beowulf був розроблений ряд високопродуктивних і спеціалізованих мережевих драйверів (Зокрема, драйвер для використання декількох Ethernet-каналів одночасно).

архітектура Beowulf

Вузли кластера.

Це або однопроцесорні ПК, або SMP-сервера з невеликим числом процесорів (2-4, можливо до 6). З різних причин оптимальним вважається побудова кластерів на базі двопроцесорних систем, незважаючи на те, що в цьому випадку настройка кластера буде трохи складніше (головним чином тому, що доcтупни відносно недорогі материнські плати для 2 процесорів Pentium II / III). Варто встановити на кожен вузол 64-128MB оперативної пам'яті (для двопроцесорних систем 64-256MB).

Одну з машин слід виділити в якості центральної (головний) куди слід встановити досить великий жорсткий диск, можливо більш потужний процесор і більше пам'яті, ніж на інші (робочі) вузли. Має сенс забезпечити (захищену) зв'язок цієї машини із зовнішнім світом.

При комплектації робочих вузлів цілком можливо відмовитися від жорстких дисків - ці вузли будуть завантажувати ОС через мережу з центральною машини, що, крім економії коштів, дозволяє настроїти ОС і все необхідне програмне забезпечення лише 1 раз (на центральній машині). Якщо ці вузли не будуть одночасно використовуватися в якості призначених для користувача робочих місць, немає необхідності встановлювати на них відеокарти та монітори. Можлива установка вузлів в стійки (rackmounting), що дозволить зменшити місце, займане вузлами, але буде коштувати трохи дорожче.

Можлива організація кластерів на базі вже існуючих мереж робочих станцій, тобто робочі станції користувачів можуть використовуватися в якості вузлів кластера вночі і в вихідні дні. Системи такого типу іноді називають COW (Cluster of Workstations).

Кількість вузлів слід вибирати виходячи з необхідних обчислювальних ресурсів і доступних фінансових коштів. Слід розуміти, що при великій кількості вузлів доведеться також встановлювати більш складне і дороге мережне обладнання.

Основні типи локальних мереж, задіяні в рамках проекту Beowulf, - це Gigabit Ethernet, Fast Ethernet і 100-VG AnyLAN. У найпростішому випадку використовується один сегмент Ethernet (10Mbit / sec на кручений парі). Однак дешевизна такої мережі, внаслідок колізій обертається великими накладними витратами на межпроцессорной обміни; а хорошу продуктивність такого кластера слід очікувати тільки на завданнях з дуже простої паралельної структурою і при дуже рідкісних взаємодіях між процесами (наприклад, перебір варіантів).

Для отримання хорошої продуктивності міжпроцесорних обмінів використовують повнодуплексний Fast Ethernet на 100Mbit / sec. При цьому для зменшення числа колізій або встановлюють кілька "паралельних" сегментів Ethernet, або з'єднують вузли кластера через комутатор (switch).

Більш дорогим, але також популярним варіантом є використання комутаторів типу Myrinet (1.28Gbit / sec, повний дуплекс).

Менш популярними, але також реально використовуваними при побудові кластерів мережних технологій технології сLAN, SCI і Gigabit Ethernet.

Іноді для зв'язку між вузлами кластера використовують паралельно кілька фізічекой каналів зв'язку - так зване «зв'язування каналів» (channel bonding), яке зазвичай застосовується для технології Fast Ethernet. При цьому кожен вузол під'єднується до комутатора Fast Ethernet більш ніж одним каналом. Щоб досягти цього, вузли оснащуються або декількома мережевими платами, або багатопортовими платами Fast Ethernet. Застосування зв'язування каналів в вузлах під управлінням ОС Linux дозволяє організувати рівномірний розподіл навантаження прийому / передачі між відповідними каналами.

Системне ПО

Операційна система. Зазвичай використовується система Linux в версіях, спеціально оптимізованих під розподілені паралельні обчислення. Була проведена доопрацювання ядра Linux 2.0. В процесі побудови кластерів з'ясувалося, що стандартні драйвери мережевих пристроїв в Linux дуже неефективні. Тому були розроблені нові драйвери, в першу чергу для мереж Fast Ethernet і Gigabit Ethernet, і забезпечена можливість логічного об'єднання кількох паралельних мережевих з'єднань між персональними комп'ютерами (Аналогічно апаратного зв'язування каналів), що дозволяє з дешевих локальних мереж, що володіють низькою пропускною здатністю, спорудити мережу з високою сукупної пропускною спроможністю.

Як і в будь-якому кластері, на кожному вузлі кластера виповнюється своя копія ядра ОС. Завдяки доопрацюванням забезпечена унікальність ідентифікаторів процесів в рамках всього кластера, а не окремих вузлів.

Комунікаційні бібліотеки. Найбільш поширеним інтерфейсом паралельного програмування в моделі передачі повідомлень є MPI. Рекомендована безкоштовна реалізація MPI - пакет MPICH, розроблений в Аргоннской Національної Лабораторії. Для кластерів на базі комутатора Myrinet розроблена система HPVM, куди також входить реалізація MPI.

Для ефективної організації паралелізму всередині однієї SMP-Системи можливі два варіанти:

  1. Для кожного процесора в SMP-машині породжується окремий MPI-процес. MPI-процеси всередині цієї системи обмінюються повідомленнями через поділювану пам'ять (необхідно налаштувати MPICH відповідним чином).
  2. На кожній машині запускається тільки один MPI-процес. Усередині кожного MPI-процесу проводиться розпаралелювання в моделі "спільної пам'яті", наприклад за допомогою директив OpenMP.

Після установки реалізації MPI має сенс протестувати реальну продуктивність мережевих пересилань.

Крім MPI, є й інші бібліотеки та системи паралельного програмування, які можуть бути використані на кластерах.

Приклад реалізації кластера Beowulf - Avalon

У 1998 році в Лос-Аламоської національної лабораторії астрофізик Michael Warren і інші вчені з групи теоретичної астрофізики побудували суперкомп'ютер Avalon, який представляє з себе Beowulf -кластер на базі процесорів DEC Alpha / 533MHz. Avalon спочатку складався з 68 процесорів, потім був розширений до 140. У кожному вузлі встановлено 256MB оперативної пам'яті, EIDE-жорсткий диск на 3.2GB, мережевий адаптер від Kingston (загальна вартість вузла - $ 1700). Вузли з'єднані за допомогою 4-х 36-портових комутаторів Fast Ethernet і розташованого "в центрі" 12-портового комутатора Gigabit Ethernet від 3Com.

Загальна вартість Avalon - $ 313 тис., А його продуктивність по LINPACK (47.7 GFLOPS) дозволила йому зайняти 114 місце в 12-й редакції списку Top500 (поруч з 152-процесорної системою IBM SP2). 70-процесорна конфігурація Avalon по багатьом тестам показала таку ж продуктивність, як 64-процесорна система SGI Origin2000 / 195MHz вартість якої перевищує $ 1 млн.

В даний час Avalon активно використовується в астрофізичних, молекулярних та інших наукових обчисленнях. На конференції SC "98 творці Avalon представили доповідь під заголовком" Avalon: An Alpha / Linux Cluster Achieves 10 Gflops for $ 150k "і заслужили премію за показником ціна / продуктивність (" 1998 Gordon Bell Price / Performance Prize ").

висновок

Провідні виробники мікропроцесорів: Sun Microsystems, Dell і IBM дотримуються однакової точки зору на майбутнє галузі суперкомп'ютерів: на зміну окремим, незалежним суперкомп'ютерів повинні прийти групи високопродуктивних серверів, що об'єднуються в кластер. Уже сьогодні розподілені кластерні системи випереджають сучасні класичні суперкомп'ютери по продуктивності: найпотужніший на сьогоднішній день комп'ютер в світі - IBM ASCI White - має продуктивність в 12 терафлоп, продуктивність мережі [Email protected] оцінюється приблизно в 15 терафлоп. При цьому, IBM ASCI White був проданий за 110 мільйонів доларів, а за всю історію існування [Email protected] було витрачено близько 500 тисяч доларів.

література

2. http://www.beowulf.com

3. http://newton.gsfc.nasa.gov/thehive/

4. LoBoS, http://www.lobos.nih.gov

5. http://parallel.ru/news/kentucky_klat2.html

6. http://parallel.ru/news/anl_chibacity.html

7. http://parallel.ru/cluster/

8. http://www.ptc.spbu.ru

MIMD комп'ютери

MIMD комп'ютер має N процесорів, незалежно виконуючих N потоків команд і обробних N потоків даних. Кожен процесор функціонує під управлінням власної потоку команд, тобто MIMD комп'ютер може паралельно виконувати абсолютно різні програми.


MIMD архітектури далі класифікуються в залежності від фізичної організації пам'яті, тобто чи має процесор свою власну локальну пам'ять і звертається до інших блоків пам'яті, використовуючи комутуючу мережу, або коммутирующая мережу під'єднує все процесори до загальнодоступної пам'яті. Виходячи з організації пам'яті, розрізняють наступні типи паралельних архітектур:

  • Комп'ютери з розподіленою пам'яттю (Distributed memory)
    Процесор може звертатися до локальної пам'яті, може посилати і отримувати повідомлення, що передаються по мережі, що з'єднує процесори. Повідомлення використовуються для здійснення зв'язку між процесорами або, що еквівалентно, для читання і запису віддалених блоків пам'яті. У ідеалізованої мережі вартість посилки повідомлення між двома вузлами мережі не залежить як від розташування обох вузлів, так і від трафіку мережі, але залежить від довжини повідомлення.

  • Комп'ютери із загальною (що розділяється) пам'яттю (True shared memory)
    Всі процесори спільно звертаються до загальної пам'яті, зазвичай, через шину або ієрархію шин. У ідеалізованої PRAM (Parallel Random Access Machine - паралельна машина з довільним доступом) моделі, часто використовуваної в теоретичних дослідженнях паралельних алгоритмів, будь-який процесор може звертатися до будь-якої комірки пам'яті за один і той же час. На практиці масштабованість цієї архітектури зазвичай призводить до деякої формі ієрархії пам'яті. Частота звернень до загальної пам'яті може бути зменшена за рахунок збереження копій часто використовуваних даних в кеш-пам'яті, пов'язаної з кожним процесором. Доступ до цього кеш-пам'яті набагато швидше, ніж безпосередньо доступ до загальної пам'яті.

  • Комп'ютери з віртуальною загальною (що розділяється) пам'яттю (Virtual shared memory)
    Спільна пам'ять як така відсутня. Кожен процесор має власну локальну пам'ять і може звертатися до локальної пам'яті інших процесорів, використовуючи "глобальну адресу". Якщо "глобальна адреса" вказує не на локальну пам'ять, то доступ до пам'яті реалізується за допомогою повідомлень, що пересилаються по комунікаційної мережі.

Прикладом машин із загальною пам'яттю можуть служити:

  • Sun Microsystems (багатопроцесорні робочі станції)
  • Silicon Graphics Challenge (багатопроцесорні робочі станції)
  • Sequent Symmetry
  • Convex
  • Cray 6400.

Наступні комп'ютери відносяться до класу машин з розподіленою пам'яттю

  • IBM-SP1 / SP2
  • Parsytec GC
  • CM5 (Thinking Machine Corporation)
  • Cray T3D
  • Paragon (Intel Corp.)
  • nCUBE
  • Meiko CS-2
  • AVX (Alex Parallel Computers)
  • IMS B008

MIMD архітектури з розподіленою пам'яттю можна так само класифікувати по пропускній здатності коммутирующей мережі. Наприклад, в архітектурі, в якій пари з процесора і модуля пам'яті (процесорний елемент) з'єднані мережею з топологій реш§тка , Кожен процесор має одне і те ж число підключень до мережі незалежно від числа процесорів комп'ютера. Загальна пропускна здатність такої мережі зростає лінійно щодо числа процесорів. З іншого боку в архітектурі, що має мережу з топологій гиперкуб , Число з'єднань процесора з мережею є логарифмічною функцією від числа процесорів, а пропускна здатність мережі зростає швидше, ніж лінійно по відношенню до числа процесорів. У топології кліка кожен процесор повинен бути з'єднаний з усіма іншими процесорами.


Мережа з топологією 2D реш§тка (тор)

Мережа з топологією 2D тор


Мережа з топологією кліка

Національного Центру Суперкомп'ютерних Додатків (університет шт. Іллінойс, Urbana-Champaign)

MPI: The Message Passing Interface

Назва "інтерфейс передачі повідомлень", говорить сама за себе. Це добре стандартизований механізм для побудови паралельних програм в моделі обміну повідомленнями. Існують стандартні "прив'язки" MPI до мов С / С ++, Fortran 77/90. Існують безкоштовні і комерційні реалізації майже для всіх суперкомп'ютерних платформ, а також для мереж робочих станцій UNIX і Windows NT. В даний час MPI - найбільш широко використовуваний і динамічно розвивається інтерфейс зі свого класу.

Beowulf - кластери на базі ОС Linux

Михайло Кузьмінський

"відкриті системи"

На порозі тисячоліть ми маємо всі шанси стати свідками монополізації комп'ютерної індустрії, яка може охопити як мікропроцесори, так і операційні системи. Звичайно ж, мова йде про мікропроцесори від Intel (Merced загрожує витіснити процесори архітектури RISC) і ОС від Microsoft.

В обох випадках успіх багато в чому визначається міццю маркетингової машини, а не тільки "споживчими" властивостями продуктів, що випускаються. На мою думку, комп'ютерне співтовариство ще не усвідомило масштабів можливих наслідків.

Деякі фахівці порівнюють потенційну монополізацію комп'ютерного ринку з спостерігався в 70-і роки монопольним пануванням IBM - як в області мейнфреймів, так і операційних систем. Я довгий час працюю з цією технікою і в міру поширення в нашій країні ОС Unix все більше усвідомлюю багато переваг операційної системи MVS виробництва IBM. Проте я поділяю поширену точку зору, що подібна монополія не сприяла прискоренню прогресу.

Західні університети, які свого часу одними з перших перейшли до використання Unix, як і раніше в своїх перспективних розробках спираються на цю систему, причому в якості платформи все частіше обирається Linux. Однією з повчальних академічних розробок і присвячена ця стаття.

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-технології також активно досліджувалися, але, наскільки відомо автору, це робилося поза рамками даного проекту.)

Як самому зібрати суперкомп'ютер

Проаналізувавши підсумки робіт, виконаних в рамках проекту Beowulf, можна прийти до наступного висновку: знайдені рішення дозволяють самостійно зібрати високопродуктивний кластер на базі стандартних для ПК компонентів і використовувати звичайне програмне забезпечення. Серед найбільших екземплярів можна не відзначити 50-вузловий кластер в CESDIS, що включає 40 вузлів обробки даних (на базі одно- і двопроцесорних плат Рentium Рro / 200 МГц) і 10 масштабуючих вузлів (двухпроцессорная плата Рentium Рro / 166 МГц). Співвідношення ціна / пікова продуктивність в такому кластері є досить вдалим. Питання в тому, наскільки ефективно вдається распараллелить додатки - іншими словами, якою буде реальна, а не пікова продуктивність. Над вирішенням цієї проблеми зараз і працюють учасники проекту.

Слід зазначити, що побудова кластерів зі звичайних ПК стає сьогодні досить модним в науковому середовищі. Деякі академічні інститути в нашій країні також планують створити подібні кластери.

При об'єднанні в кластер комп'ютерів різної потужності або різної архітектури, говорять про гетерогенні (неоднорідних) кластерах. Вузли кластера можуть одночасно використовуватися в якості призначених для користувача робочих станцій. У разі, коли це не потрібно, вузли можуть бути істотно полегшені і / або встановлені в стійку.

Використовуються стандартні для робочих станцій ОС, найчастіше, вільно поширювані - Linux / FreeBSD, разом зі спеціальними засобами підтримки паралельного програмування і розподілу навантаження. Програмування, як правило, в рамках моделі передачі повідомлень (найчастіше - MPI). Більш докладно вона розглянута в наступному параграфі.

Історія розвитку кластерної архітектури.

Компанія DEC першої анонсувала концепцію кластерної системи в 1983 році, визначивши її як групу об'єднаних між собою обчислювальних машин, що представляють собою єдиний вузол обробки інформації.

Один з перших проектів, що дав ім'я цілому класу паралельних систем - кластери Beowulf - виник в центрі NASA Goddard Space Flight Center для підтримки необхідними обчислювальними ресурсами проекту Earth and Space Sciences. Проект Beowulf стартував влітку 1994 року, і незабаром був зібраний 16-процесорний кластер на процесорах Intel 486DX4 / 100 МГц. На кожному вузлі було встановлено по 16 Мбайт оперативної пам'яті і по 3 мережевих Ethernet-адаптера. Для роботи в такій конфігурації були розроблені спеціальні драйвери, що розподіляють трафік між доступними мережевими картами.

Пізніше в GSFC був зібраний кластер theHIVE - Highly-parallel Integrated Virtual Environment, структура якого показана на рис. 2. Цей кластер складається з чотирьох подкластера E, B, G, і DL, об'єднуючи 332 процесора і два виділених хост-вузла. Всі вузли даного кластера працюють під управлінням RedHat Linux.

У 1998 році в Лос-Аламоської національної лабораторії астрофізик Майкл Уоррен і інші вчені з групи теоретичної астрофізики побудували суперкомп'ютер Avalon, який являє собою Linux-кластер на базі процесорів Alpha 21164A з тактовою частотою 533 МГц. Спочатку Avalon складався з 68 процесорів, потім був розширений до 140. У кожному вузлі встановлено по 256 Мбайт оперативної пам'яті, жорсткий диск на 3 Гбайт і мережевий адаптер Fast Ethernet. Загальна вартість проекту Avalon склала 313 тис. Дол., А показана їм продуктивність на тесті LINPACK - 47,7 GFLOPS, дозволила йому зайняти 114 місце в 12-й редакції списку Top500 поруч з 152-процесорної системою IBM RS / 6000 SP. У тому ж 1998 році на найпрестижнішій конференції в області високопродуктивних обчислень Supercomputing'98 творці Avalon представили доповідь «Avalon: An Alpha / Linux Cluster Achieves 10 Gflops for $ 150k», який отримав першу премію в номінації «найкраще співвідношення ціна / продуктивність».

У квітні поточного року в рамках проекту AC3 в Корнельському Університеті для біомедичних досліджень було встановлено кластер Velocity +, що складається з 64 вузлів з двома процесорами Pentium III / 733 МГц і 2 Гбайт оперативної пам'яті кожен і з загальною дискової пам'яттю 27 Гбайт. Вузли працюють під управлінням Windows 2000 і об'єднані мережею cLAN компанії Giganet.

Проект Lots of Boxes on Shelfes реалізований в Національному Інституті здоров'я США в квітні 1997 року і цікавий використанням в якості комунікаційного середовища технології Gigabit Ethernet. Спочатку кластер складався з 47 вузлів з двома процесорами Pentium Pro / 200 МГц, 128 Мбайт оперативної пам'яті і диском на 1,2 Гбайт на кожному вузлі. У 1998 році був реалізований

наступний етап проекту - LoBoS2, в ході якого вузли були перетворені в настільні комп'ютери зі збереженням об'єднання в кластер. Зараз LoBoS2 складається з 100 обчислювальних вузлів, що містять по два процесори Pentium II / 450 МГц, 256 Мбайт оперативної і 9 Гбайт дискової пам'яті. Додатково до кластеру підключені 4 керуючих комп'ютера із загальним RAID-масивом ємністю 1,2 Тбайт.

Однією з останніх кластерних розробок став суперкомп'ютер AMD Presto III, який представляє собою кластер Beowulf з 78 процесорів Athlon. Комп'ютер встановлений в Токійському технологічному інституті. На сьогоднішній день AMD побудувала 8 суперкомп'ютерів, об'єднаних в кластери за методом Beowulf, що працюють під управлінням ОС Linux.

кластери IBM

RS / 6000

Компанія IBM пропонує кілька типів слабо пов'язаних систем на базі RS / 6000, об'єднаних в кластери і працюють під управлінням програмного продукту High-Availability Clastered Multiprocessor / 6000 (HACMP / 6000).

Вузли кластера працюють паралельно, поділяючи доступ до логічних і фізичних ресурсів користуючись можливостями менеджера блокувань, що входить до складу HACMP / 6000.

Починаючи з оголошення в 1991 році продукт HACMP / 6000 постійно розвивався. До його складу були включені паралельний менеджер ресурсів, розподілений менеджер блокувань і паралельний менеджер логічних томів, причому останній забезпечив можливість балансування завантаження на рівні всього кластера. Максимальна кількість вузлів в кластері зросла до восьми. В даний час в складі кластера з'явилися вузли з симетричною багатопроцесорної обробкою, побудовані за технологією Data Crossbar Switch, що забезпечує лінійне зростання продуктивності зі збільшенням числа процесорів.

Кластери RS / 6000 будуються на базі локальних мереж Ethernet, Token Ring або FDDI і можуть бути налаштовані різними способами з точки зору забезпечення підвищеної надійності:

  • Гарячий резерв або просте перемикання в разі відмови. В цьому режимі активний вузол виконує прикладні завдання, а резервний може виконувати некритичні завдання, які можуть бути зупинені у разі необхідності перемикання при відмові активного вузла.
  • Симетричний резерв. Аналогічний гарячого резерву, але ролі головного і резервного вузлів не фіксовані.
  • Взаємний підхоплення або режим з розподілом навантаження. У цьому режимі кожен вузол в кластері може "підхоплювати" завдання, які виконуються на будь-якому іншому вузлі кластера.

IBM SP2

IBM SP2 лідирують у списку найбільших суперкомп'ютерів TOP500 за кількістю інсталяцій (141 установка, а всього в світі працює 8275 таких комп'ютерів із загальним числом вузлів понад 86 тис. В основу цих суперкомп'ютерів закладений в основу архітектури кластерний підхід з використанням потужного центрального комутатора. IBM використовує цей підхід вже багато років.

Загальна архітектура SP2

Загальне уявлення про архітектуру SP2 дає рис. 1. Основна її особливість архітектури - застосування високошвидкісного комутатора з низькими затримками для з'єднання вузлів між собою. Ця зовні гранично проста схема, як показав досвід, виявилася надзвичайно гнучкою. Спочатку вузли SP2 були однопроцесорними, потім з'явилися вузли з SMP-архітектурою.

Власне, всі деталі ховаються в будові вузлів. Мало того, вузли бувають різних типів, Причому навіть процесори в сусідніх вузлах можуть бути різними. це забезпечує

велику гнучкість вибору конфігурацій. Загальна кількість вузлів в обчислювальній системі може досягати 512. Вузли SP2 фактично є самостійними комп'ютерами, І їх прямі аналоги продаються корпорацією IBM під самостійними назвами. Найбільш яскравим прикладом цього є чотирипроцесорний SMP-сервер RS / 6000 44P-270 c мікропроцесорами Power3-II, який сам по собі можна віднести до класу комп'ютерів середнього класу або навіть до міні-суперкомп'ютерів.

Встановлювалися в вузлах SP2 мікропроцесори розвивалися за двома архітектурним лініям: Power - Power2 - Power3 - Power3-II і по лінії PowerPC аж до моделі 604e з тактовою частотою 332 МГц.

Традиційними для SP2 є «тонкі» (Thin Node) і «широкі» (Wide Node) вузли, що володіють SMP-архітектурою. У них можуть встановлюватися як PowerPC 604e (від двох до чотирьох процесорів), так і Power3-II (до чотирьох). Ємність оперативної пам'яті вузлів становить від 256 Мбайт до 3 Гбайт (при використанні Power3-II - до 8 Гбайт). Основні відмінності між тонкими і широкими вузлами стосуються підсистеми вводу / виводу. Широкі вузли призначені для задач, що вимагають більш потужних можливостей введення / виведення: в них є по десять слотів PCI (В тому числі три 64-розрядних) проти двох слотів в тонких вузлах. Відповідно, і число монтажних відсіків для дискових пристроїв в широких вузлах більше.

Швидкодія комутатора характеризується низькими величинами затримок: 1,2 мс (до 2 мс при числі вузлів понад 80). Це на порядок краще того, що можна отримати в сучасних Linux-кластерах Beowulf. Пікова пропускна здатність кожного порту: вона становить 150 Мбайт / с в одному напрямку (тобто 300 Мбайт / с при дуплексной передачі). Тієї ж пропускною здатністю володіють і розташовані в вузлах SP2 адаптери комутатора. IBM призводить також відмінні результати по затримок і пропускної здатності.

Найбільш потужні вузли SP2 - «високі» (High Node). Високий вузол - це комплекс, що складається з обчислювального вузла, до якого підключено пристроями розширення введення / виводу в кількості до шести штук. Такий вузол також має SMP-архітектурою і містить до 8 процесорів Power3 з тактовою частотою 222 або 375 МГц.

Крім того, вузол цього типу містить плату введення / виведення, яка також приєднана до системній платі. Плата введення / виведення містить два симетричних логічних блоку SABER, через які здійснюється передача даних до зовнішніх пристроїв, таким

як диски та телекомунікаційне обладнання. На платі введення / виведення є чотири слота 64-розрядної шини PCI і один 32-розрядний слот (частота 33 МГц), а також інтегровані контролери UltraSCSI, Ethernet 10/100 Мбіт / с, три послідовних і один паралельний порт.

C появою високих вузлів і мікропроцесорів Power3-II / 375 МГц на тестах Linpack parallel системи IBM SP2 досягли продуктивності 723,4 GFLOPS. Цей результат досягнутий при використанні 176 вузлів (704 процесора). З огляду на, що вузлів можна встановити до 512, цей результат показує, що серійно випускаються IBM SP2 потенційно близькі до позначки 1 TFLOPS.

Кластерні рішення Sun Microsystems

Sun Microsystems пропонує кластерні рішення на основі свого продукту SPARCclaster PDB Server, в якому в якості вузлів використовуються багатопроцесорні SMP-сервери SPARCserver 1000 і SPARCcenter 2000. Максимально до складу SPARCserver 1000 можуть входити до восьми процесорів, а в SPARCcenter 2000 до 20 процесорів SuperSPARC. У комплект базової таких компонентів: два кластерних вузла на основі SPARCserver 1000 / 1000E або SPARCcenter 2000 / 2000E, два дискових масиву SPARCstorage Array, а також пакет засобів для побудови кластера, що включає дубльоване обладнання для здійснення зв'язку, консоль управління кластером Claster Management Console , програмне забезпечення SPARCclaster PDB Software і пакет сервісної підтримки кластера.

Для забезпечення високої продуктивності і готовності комунікацій кластер підтримує повне дублювання всіх магістралей даних. Вузли кластера об'єднуються за допомогою каналів SunFastEthernet з пропускною спроможністю 100 Мбіт / с. Для підключення дискових підсистем використовується оптоволоконний інтерфейс Fibre Channel з пропускною спроможністю 25 Мбіт / с, що допускає видалення накопичувачів і вузлів один від одного на відстань до 2 км. Все зв'язку між вузлами, вузлами і дисковими підсистемами дубльовані на апаратному рівні. Апаратні, програмні та мережеві засоби кластера забезпечують відсутність такого місця в системі, одиночний відмова або збій якого виводив би всю систему з ладу.

університетські проекти

Цікава розробка Університету штату Кентуккі - кластер KLAT2 (Kentucky Linux Athlon Testbed 2). Система KLAT2 складається з 64 бездискових вузлів з процесорами AMD Athlon / 700 МГц і оперативною пам'яттю 128 Мбайт на кожному. Програмне забезпечення, компілятори і математичні бібліотеки (SCALAPACK, BLACS і ATLAS) були доопрацьовані для ефективного використання технології 3DNow! процесорів AMD, Що дозволило збільшити продуктивність. Значний інтерес представляє і використане мережеве рішення, назване «Flat Neighbourghood Network» (FNN). У кожному вузлі встановлено чотири мережевих адаптера Fast Ethernet від Smartlink, а вузли з'єднуються за допомогою дев'яти 32-портових комутаторів. При цьому для будь-яких двох вузлів завжди є пряме з'єднання через один з комутаторів, але немає необхідності в поєднанні всіх вузлів через єдиний комутатор. Завдяки оптимізації програмного забезпечення під архітектуру AMD і топології FNN вдалося домогтися рекордного співвідношення ціна / продуктивність - 650 дол. За 1 GFLOPS.

Ідея розбиття кластера на розділи отримала цікаве втілення в проекті Chiba City, реалізованому в Аргоннской Національної лабораторії. Головний розділ містить 256 обчислювальних вузлів, на кожному

з яких встановлено два процесори Pentium III / 500 МГц, 512 Мбайт оперативної пам'яті і локальний диск ємністю 9 Гбайт. Крім обчислювального розділу в систему входять розділ візуалізації (32 персональних комп'ютера IBM Intellistation з графічними платами Matrox Millenium G400, 512 Мбайт оперативної пам'яті і дисками 300 Гбайт), розділ зберігання даних (8 серверів IBM Netfinity 7000 з процесорами Xeon / 500 МГц і дисками по 300 Гбайт) і керуючий розділ (12 комп'ютерів IBM Netfinity 500). Всі вони об'єднані мережею Myrinet, яка використовується для підтримки паралельних додатків, А також мережами Gigabit Ethernet і Fast Ethernet для керівників та службових цілей. Всі розділи діляться на «міста» (town) по 32 комп'ютери. Кожен з них має свого «мера», який локально обслуговує свій «місто», знижуючи навантаження на службову мережу і забезпечуючи швидкий доступ до локальних ресурсів.

Кластерні проекти в Росії

У Росії завжди була висока потреба в високопродуктивних обчислювальних ресурсах, і відносно низька вартість кластерних проектів послужила серйозним поштовхом до широкого поширення подібних рішень в нашій країні. Одним з перших з'явився кластер «Паритет», зібраний в ІВВіБД і складається з восьми процесорів Pentium II, пов'язаних мережею Myrinet. У 1999 році варіант кластерного рішення на основі мережі SCI був апробований в НІЦЕВТ, який, по суті справи, і був піонером використання технології SCI для побудови паралельних систем в Росії.

Високопродуктивний кластер на базі комунікаційної мережі SCI, встановлений в Науково-дослідному обчислювальному центрі Московського державного університету. Кластер НИВЦ включає 12 двопроцесорних серверів «Ексімер» на базі Intel Pentium III / 500 МГц, в цілому 24 процесора з сумарною піковою продуктивністю 12 млрд. Операцій в секунду. Загальна вартість системи - близько 40 тис. Дол. Або приблизно 3,33 тис. За 1 GFLOPS.

Обчислювальні вузли кластера з'єднані односпрямованим каналами мережі SCI в двовимірний тор 3x4 і одночасно підключені до центрального серверу через допоміжну мережу Fast Ethernet і комутатор 3Com Superstack. Мережа SCI - це ядро \u200b\u200bкластера, що робить дану систему унікальної обчислювальної установкою суперкомп'ютерного класу, орієнтованої на широкий клас задач. Максимальна швидкість обміну даними по мережі SCI в додатках користувача становить понад 80 Мбайт / с, а час латентності близько 5,6 мкс. При побудові даного обчислювального кластера використовувалося інтегроване рішення Wulfkit, розроблене компаніями Dolphin Interconnect Solutions і Scali Computer (Норвегія).

Основним засобом паралельного програмування на кластері є MPI (Message Passing Interface) версії ScaMPI 1.9.1. На тесті LINPACK при вирішенні системи лінійних рівнянь з матрицею розміру 16000х16000 реально отримана продуктивність склала понад 5,7 GFLOPS. На тестах пакета NPB продуктивність кластера можна порівняти, а іноді і перевершує продуктивність суперкомп'ютерів сімейства Cray T3E з тим же самим числом процесорів.

Основна область застосування обчислювального кластера НИВЦ МГУ - це підтримка фундаментальних наукових досліджень і навчального процесу.

З інших цікавих проектів слід відзначити рішення, реалізоване в Санкт-Петербурзькому університеті на базі технології Fast Ethernet: зібрані кластери можуть використовуватися і як повноцінні незалежні навчальні класи, і як єдина обчислювальна установка, вирішальна єдине завдання. У Самарському науковому центрі

пішли по шляху створення неоднорідного обчислювального кластера, в складі якого працюють комп'ютери на базі процесорів Alpha і Pentium III. У Санкт-Петербурзькому технічному університеті збирається установка на основі процесорів Alpha і мережі Myrinet без використання локальних дисків на обчислювальних вузлах. У Уфимском державному авіаційному технічному університеті проектується кластер на базі дванадцяти Alpha-станцій, мережі Fast Ethernet і ОС Linux.

  • 2. Арифметико-логічні пристрої. Структура, підхід до проектування, основні рівняння роботи алу
  • 3. Організація ланцюгів перенесення в межах секції алу. Нарощування розрядності, схема прискореного переносу
  • 4. Регістрове алу - базова структура мікропроцесора. Варіанти побудови реєстрових структур. Завдання управління і синхронізації
  • 7. Пристрій мікропрограмного управління. Структура, способи формування керуючих сигналів, адресація мікрокоманд
  • 8. Система команд і способи адресації операндів. Конвеєрний принцип виконання команд
  • 9. Структурні конфлікти та способи їх мінімізації. Конфлікти за даними, аррестори конвеєра і реалізація механізму обходів
  • 10. Скорочення втрат на виконання команд переходу і мінімізація конфліктів з управління
  • 11. Класифікація систем пам'яті. Організація систем пам'яті в мікропроцесорних системах
  • 12. Принципи організації кеш-пам'яті. Способи відображення даних з ОЗУ в кеш-пам'ять
  • 13. Режими прямого доступу до пам'яті. Структури контролерів ПДП
  • 14. Принципи функціонування віртуальної пам'яті
  • 15. Типові структури і принципи функціонування мікропроцесорних систем
  • 16. Основні режими функціонування мікропроцесорної системи. Виконання основної програми, виклик підпрограм
  • 17. Основні режими функціонування мікропроцесорної системи. Обробка переривань і виключень
  • 18. Системи з циклічним опитуванням. Блок пріоритетних переривань
  • 19. Обмін інформацією між елементами в мікропроцесорних системах. арбітр магістралі
  • Частина 2
  • 20. Класифікація архітектур сучасних мікропроцесорів. Архітектури з повним і скороченим набором команд, суперскалярна архітектура
  • 21. Класифікація архітектур сучасних мікропроцесорів. Принстонська (Фон-Неймана) і гарвардська архітектури
  • 22. Структура сучасних 8-розрядних мікроконтролерів сRisc-архітектурою
  • 22 (?). Структура сучасних 32-розрядних мікроконтролерів сRisc-архітектурою
  • 23. Процесори цифрової обробки сигналів: принципи організації, узагальнена структура
  • 24. Процесори загального призначення на прикладі архітектуриIntelP6
  • 25. Класифікація архітектур паралельних обчислювальних систем. Системи з розділяється загальною пам'яттю
  • 26. Класифікація архітектур паралельних обчислювальних систем. Системи з розподіленою пам'яттю
  • 27. Векторно-конвеєрні обчислювальні системи. Пам'ять з розшаруванням. Особливості структури сістемиCray-1
  • 28. Матричні обчислювальні системи. Особливості побудови систем пам'яті і комутаторів
  • 29. Машини, керовані потоком даних. Принципи дії та особливості їх побудови. Графічний спосіб представлення програм
  • 30. Системи з програмованої структурою. Однорідні обчислювальні середовища
  • 31. Систолические обчислювальні системи
  • 32. Кластерні обчислювальні системи: визначення, класифікація, топології
  • 32. Кластерні обчислювальні системи: визначення, класифікація, топології

    Кластерні обчислювальні системи стали продовженням розвитку ідей, закладених в архітектурі MPA-систем. Якщо в MPA-системі в якості закінченого обчислювального вузла виступає процесорний модуль, то в кластерних системах в якості таких обчислювальних вузлів використовують серійно випускаються комп'ютери.

    кластер- це пов'язаний набір повноцінних комп'ютерів, який використовується в якості єдиного обчислювального ресурсу. Як вузлів кластерів можуть використовуватися як однакові (гомогенні кластери), так і різні (гетерогенні кластери) обчислювальні машини. За своєю архітектурою кластерна обчислювальна система є слабо зв'язаної. Для створення кластерів зазвичай використовуються або прості однопроцесорні персональні комп'ютери, або двох- або чотирипроцесорні SMP-сервери. При цьому не накладається ніяких обмежень на склад і архітектуру вузлів.

    На апаратному рівні кластер- сукупність незалежних обчислювальних систем, об'єднаних мережею.

    Найпростіша класифікація кластерних систем заснована на способі використання дискових масивів: разом чи окремо.

    Конфігурація кластера без спільно використовуваних дисків:

    Конфігурація кластера з спільно використовуваними дисками:

    Наведено структури кластерів з двох вузлів, координація роботи яких забезпечується високошвидкісний лінією, використовуваної для обміну повідомленнями. Це може бути локальна мережа, що застосовується також і не входять в кластер комп'ютерами, яка виділена лінія. У разі виділеної лінії один або декілька вузлів кластера матимуть вихід на локальну або глобальну мережу, завдяки чому забезпечується зв'язок між серверним кластером і віддаленими клієнтськими системами.

    Різниця між представленими кластерами полягає в тому, що в разі локальної мережі вузли використовують локальні дискові масиви, а в разі виділеної лінії вузли спільно використовують один надлишковий масив незалежних жорстких дисків або так званий RAID (RedundantArrayofIndependentDisks). RAID складається з декількох дисків, керованих контролером, взаємопов'язаних швидкісними каналами і сприймаються зовнішньою системою як єдине ціле. Залежно від типу використовуваного масиву можуть забезпечуватися різні ступені відмовостійкості і швидкодії.

    Класифікація кластерів по використовуваних методів кластеризації, які визначають основні функціональні особливості системи:

    ∙ кластеризація з пасивним резервуванням;

    ∙ кластеризація з активним резервуванням;

    ∙ самостійні сервери;

    ∙ сервери з підключенням до всіх дисків;

    ∙ сервери з спільно використовуваними дисками.

    Кластеризація з резервуванням - найбільш старий і універсальний метод. Один з серверів бере на себе всю обчислювальну навантаження, в той час як інший залишається неактивним, але готовим прийняти обчислення при відмові основного сервера. Активний (або первинний) сервер періодично посилає резервному (вторинному) сервера тактується повідомлення. При відсутності тактуючих повідомлень, що розглядається як відмова первинного сервера, вторинний сервер бере керування на себе.

    Пасивне резервування для кластерів нехарактерно. Термін «кластер» відносять до безлічі взаємопов'язаних вузлів, які беруть активну участь в обчислювальному процесі і спільно створюють ілюзію однієї потужної обчислювальної машини. До такої конфігурації зазвичай застосовують поняття системи з активним вторинним сервером, і тут виділяють три методи кластеризації: самостійні сервери, сервери без спільного використання дисків і сервери зі спільним використанням дисків.

    У першому методі кожен вузол кластера розглядається як самостійний сервер з власними дисками, причому жоден з дисків в системі не є спільно використовуваним.

    Для скорочення комунікаційних витрат більшість кластерів в даний час складаються з серверів, підключених до загальних дисків, зазвичай представлених дисковим масивом RAID. Один з варіантів такого підходу передбачає, що спільне використання дисків не застосовується. Загальні диски розбиваються на розділи, і кожному вузлу кластера виділяється свій розділ. Якщо один з вузлів відмовляє, кластер може бути реконфигурирован так, що права доступу до його розділу загального диска передаються іншому вузлу. При іншому варіанті безліч серверів поділяють в часі доступ до загальних дисків, так що будь-який вузол має доступ до всіх роз- справах всіх загальних дисків. Такий підхід вимагає наявності будь-яких засобів блокування, які гарантують, що в будь-який момент часу доступ до даних буде мати тільки один з серверів.

    Топологія кластерних пар:

    Топологія кластерних пар використовується при організації дво- або четирехузлових кластерів. Вузли групуються попарно, дискові масиви приєднуються до обох вузлів, що входять до складу пари, причому кожен вузол пари має доступ до всіх дисковим масивам даної пари. Один з вузлів пари використовується як резервний для іншого.

    Четирехузловая кластерна пара являє собою просте розширення двовузлового топології. Обидві кластерні пари з точки зору адміністрування і настройки розглядаються як єдине ціле.

    топологія N+ 1:

    топологія N + 1 дозволяє створювати кластери з двох, трьох і чотирьох вузлів. Кожен дисковий масив підключається тільки до двох вузлів кластера. Дискові масиви організовані за схемою RAID1 (mirroring). Один сервер має сполучення з усіма дисковими масивами і служить в якості резервного для всіх інших (основних або активних) вузлів. Резервний сервер може використовуватися для забезпечення високого ступеня готовності в парі з будь-яким з активних вузлів.

    топологія N × N аналогічно топології N + 1 дозволяє створювати кластери з двох, трьох і чотирьох вузлів, але на відміну від неї має більшу гнучкість і масштабованість. Тільки в цій топології всі вузли кластера мають доступ до всіх дисковим масивам, які, в свою чергу, будуються за схемою RAID1 (mirroring). Масштабованість топології проявляється в простоті додавання до кластеру додаткових вузлів і дискових масивів без зміни з'єднань в системі.

    Топологія дозволяє організувати каскадну систему відмовостійкості, при якій обробка переноситься з несправного вузла на резервний, а в разі його виходу з ладу на наступний резервний вузол і т. Д. У цілому топологія має кращу отказоустойчивостью і гнучкістю в порівнянні з іншими топологиями.

    топологія N× N:

    Топологія з повністю роздільним доступом:

    Топологія з повністю роздільним доступом допускає з'єднання кожного дискового масиву тільки з одним вузлом кластера. Рекомендується лише для тих додатків, для яких характерна архітектура повністю роздільного доступу.

    Blue Gene / L і сімейства SGI Altix.

    В якості базового програмного забезпечення для організації обчислень на кластерних системах розглядається Windows Compute Cluster Server (CCS) 2003. Дається його загальна характеристика та склад сервісів, що працюють на вузлах кластерів.

    На закінчення даного розділу, наводяться правила роботи з консоллю запуску та управління завданнями CCS. Описуються подробиці роботи планувальника CCS при виконанні послідовностей завдань на кластері.

    1.1. Архітектура високопродуктивних процесорів і кластерних систем

    В історії розвитку архітектури комп'ютерних процесорів можна виділити два великих етапи:

    • 1-й етап - збільшення тактової частоти роботи процесорів (до 2000 р),
    • 2-й етап - поява багатоядерних процесорів (після 2000) р

    Таким чином, підхід на основі SMP (Symmetrical MultiProcessing), який розвивався при побудові високопродуктивних серверів, в яких кілька процесорів поділяють ресурс системи, і, в першу чергу, оперативну пам'ять (див. Рис 1.1), змістився "вниз" на рівень ядер всередині процесора.


    Мал. 1.1.

    На шляху до багатоядерним процесорам, першою з'явилася технологія Hyper-Threading, вперше застосована в 2002 р в процесорах Intel Pentium 4:


    Мал. 1.2.

    У цій технології два віртуальних процесора поділяють між собою всі ресурси одного фізичного процесора, а саме, кеші, конвеєр виконання і окремі виконавчі пристрої. При цьому, якщо один віртуальний процесор зайняв загальний ресурс, то другий чекатиме його звільнення. Тим самим, процесор з Hyper-Threading можна порівняти з багатозадачного операційною системою, що забезпечує кожному працюючому в ній процесу свій віртуальний комп'ютер з повним набором засобів і займається плануванням порядку і часу роботи цих процесів на фізичному обладнанні. Тільки у випадку з Hyper-Threading, все це відбувається на значно нижчому апаратному рівні. Проте, два потоку команд дозволяють більш ефективно завантажити виконавчі пристрої процесора. Реальний приріст продуктивності процесора від застосування технології Hyper-Threading оцінюється від 10 до 20 відсотків.

    Повноцінний двоядерний процесор (див. Рис 1.3), на окремих завданнях демонструє приріст продуктивності від 80 до 100 відсотків.


    Мал. 1.3.

    Таким чином, двоядерний і, в загальному випадку, багатоядерний процесор , Можна розглядати як SMP-систему в мініатюрі, в якій відсутня необхідність використання складних і дорогих багатопроцесорних материнських плат.

    Більш того, кожне ядро \u200b\u200bможе (як, наприклад, в процесорі Intel Pentium Extreme Edition 840) підтримувати технологію Hyper-Threading, а тому такого роду двоядерний процесор може виконувати чотири програмних потоку одночасно.

    На початку 2007 р, корпорація Intel представила 80-ядерний однокристальний процесор, який отримав назву Teraflops Research Chip (http://www.intel.com/research/platform/terascale/teraflops.htm). Цей процесор може досягати продуктивності 1,01 терафлопс при мінімальній тактовій частоті ядра 3,16 ГГц і напрузі 0,95 В. При цьому загальне енергоспоживання чіпа складає всього 62 Вт.

    За прогнозами Intel, комерційні варіанти процесорів з великим числом ядер з'являться в найближчі 5 років, а до 2010 р чверть обсягу всіх поставляються серверів матимуть терафлопного продуктивність.

    Кластерні обчислювальні системи і їх архітектура

    кластер - це локальна (розташована територіально в одному місці) обчислювальна система, що складається з безлічі незалежних комп'ютерів і мережі, що зв'язує їх. Крім того, кластер є локальною системою тому, що він керується в рамках окремого адміністративного домену як єдина комп'ютерна система.

    Комп'ютерні вузли з яких він складається, є стандартними, універсальними (персональними) комп'ютерами, використовуваними в різних областях і для різноманітних додатків. Обчислювальний вузол може містити або один мікропроцесор, або кілька, утворюючи, в останньому випадку, симетричну (SMP-) конфігурацію.

    Мережева компонента кластера може бути або звичайною локальною мережею, або бути побудована на основі спеціальних мережевих технологій, що забезпечують надшвидку передачу даних між вузлами кластера. Мережа кластера призначена для інтеграції вузлів кластера і, звичайно, відокремлена від зовнішньої мережі, через яку здійснюється доступ користувачів до кластеру.

    Програмне забезпечення кластерів складається з двох компонент:

    • засобів розробки / програмування та
    • засобів управління ресурсами.

    До засобів розробки відносяться компілятори для мов, бібліотеки різного призначення, Засоби вимірювання продуктивності, а також отладчики, що, все разом, дозволяє будувати паралельні програми.

    До програми керування ресурсами відносяться засоби інсталяції, адміністрування і планування потоків робіт.

    Хоча для паралельної обробки існує дуже багато моделей програмування, але, на даний момент, домінуючим підходом є модель на основі "передачі повідомлень" (message passing), реалізована у вигляді стандарту MPI (Message Passing Interface). MPI - це бібліотека функцій, за допомогою яких в програмах на мовах C або Фортран можна передавати повідомлення між паралельними процесами, а також керувати цими процесами.

    Альтернативами такому підходу є мови на основі так званого "глобального розподіленого адресного простору" (GPAS - global partitioned address space), типовими представниками яких є мови HPF (High Performance Fortran) і UPC (Unified Parallel C).