- •Вузькі місця в структурі пк
- •Комп’ютери з розподіленою пам’яттю
- •Мультипроцесорні системи
- •Архітектура numa
- •Класифікація архітектур обчислювальних систем
- •Векторно-конвеєрні комп’ютери
- •Функціональні пристрої
- •Паралельні комп’ютери із спільною пам’яттю (Багатопроцесорні системи)
- •Секція управління процесором
- •Пікова продуктивність комп’ютера
- •Комп’ютер hp Superdome як приклад архітектури ccNuma
- •Обчислювальні системи з розподіленою пам’яттю
- •Кластерні проекти
- •Комунікаційні середовища кластерних систем
- •Мета створення кластерів та розпаралелення задач
- •Трудові витрати на розпаралелювання та використання програми
- •Класи задач, які можна ефективно розпаралелювати
- •Бібліотека мрі
- •Компіляція і запуск мрі – програм
- •Метакомп’ютери
- •Продуктивність паралельних комп’ютерів
- •Підходи до організації обчислювального процесу та потокові машини
- •Нестандартні архітектури пам’яті. Пам’ять з чергуванням адрес
- •Асоціативна пам’ять (безадресна пам’ять)
- •Трансп’ютери
- •Організація трансп’ютерів
- •Характеристики трансп’ютерів
- •Функціонально розподілені системи
- •Обчислювальні системи з структурою, що перебудовується
- •Матричні системи
Кластерні проекти
Один з найперших кластерних проектів, що дав ім’я цілому класу архітектур був проект Beawulf, що розроблявся в центрі НАСА. Проект стартував влітку 1994 року. Спочатку він містив 16 вузлів, кожен з яких містив процесор І486Dх з частотою 100МГц, оперативна пам'ять на кожному вузлі – 16Мб і по 3 мережеві картки Ethernet на кожному з них.
Для роботи в такій системі було розроблено систему мережевих драйверів, що аналізували трафік і розподіляли його між картками. Пізніше в цьому ж центрі був розроблений кластер The Hive, що складався з 332 процесорів та двох виділених Host- комп’ютерів для керування роботою. Всі вузли працювали під управлінням Red Hat Linux.
В 1998 році в національній лабораторії в місті Лос-Аланос був створений кластер на основі процесорів Alpha 21164A з тактовою частотою 533МГц, операційна система – Linux. Даний кластер отримав назву Avalon. Спочатку він складався з 68 процесорів, а згодом їх число збільшилось до 140. На кожному вузлу було встановлено по 256Мб оперативної пам’яті. Жорсткий диск на 3Гб та мережевий адаптер Fast Ethernet. Загальна вартість проекту – 313000$. Продуктивність кластера на тесті LinPack - 47,7ГФлопс.
В квітні 2000 року в Корнельському університеті було реалізовано кластер Velocity+, що складався з 64 вузлів на базі процесора Intel Pentium III. Вузли працювали під управлінням операційної системи Windows 2000 та об’єднані мережею Dan.
Проект LoBoS був реалізований в національному інституті здоров’я США у квітні 1997 року. Він цікавий тим, що в якості комунікаційного середовища використовується технологія Gigabit Ethernet. Спочатку кластер складався з 47 вузлів, кожен з яких в свою чергу містив по два процесори Intel Pentium Pro (200МГц), оперативна пам’ять – 128М, жорсткий диск – 4,2Гб.
В 1998 році був реалізований наступний етап проекту LoBoS 2, він містив 100 вузлів по 2 процесори Intel Pentium II (450МГц), оперативна пам’ять – 256Мб, вінчестер – 9Гб, добавилось 4 керуючих комп’ютери із загальним RAID- масивом на 1,2Тб.
Цікавою розробкою став у 2000 році проект KLAT 2. Дана система складається з 64 бездискових вузлів AMD Athlon (700МГц), ОЗП- 128Мб. Найбільш цікавим є комунікаційне середовище, що було названо FNN. В кожному вузлі встановлені 4 мережевих адаптери, вузли з’єднані через 9 комутаторів таким чином, щоб між двома довільними вузлами системи був прямий зв’язок через один комутатор. Завдяки такій системі вдалось досягти максимального значення відношення «ціна- продуктивність», а саме 650$ за 1Гфлопс.
Комунікаційні середовища кластерних систем
Існує багато варіантів створення та побудови кластерних систем. Всі вони відрізняються між собою комунікаційним середовищем, що використовується для передачі даних між вузлами. Спочатку використовувався стандарт Ethernet зі швидкістю 10Мбіт/с.
В наш час досить поширеною є технологія Fast Ethernet зі швидкістю 10Мбіт/с. Проте великі накладні витрати даної технології при передачі даних не дозволяють створити універсальні обчислювальні кластери. Як альтернативу розробники можуть використовувати технології Gigabit Ethernet, Clan, Myrinet, Servernet та інші.
При передачі даних основні характеристики, що впливають на продуктивність це – латентність та пропускна здатність мережі. Латентність – це час, який потрібен, щоб повідомлення було підготовлене до відправки. Пропускна здатність мережі – це кількість інформації, що може бути передана за одиницю часу. Якщо обмін інформацією між вузлами складається з великої кількості невеликих повідомлень, то визначну роль в обміні даними буде грати латентність. Якщо повідомлення одне і велике, то визначну роль в обміні даними буде грати пропускна здатність.
Коли програмний додаток відправляє дані, вони спочатку проходять декілька шарів програмної та апаратної підтримки. Кожен з цих шарів може вносити власні корективи у процес передачі повідомлення. Наприклад, неякісний мережевий адаптер може з затримкою передавати дані, а неякісно встановлений драйвер може значно спотворити потік бітів.
Розглянемо параметри, які впливають на продуктивність комп’ютерів даного класу:
Наявність фрагментів програми, які можна розпаралелювати. Якщо в програмі досить великі фрагменти послідовного коду, то розраховувати на збільшення продуктивності не варто;
Так як фізична пам’ять є розподіленою між вузлами системи, то для доступу процесора до віддалених фрагментів пам’яті використовується система повідомлень, а отже визначну роль будуть грати або латентність або пропускна здатність. Тому для створення додатків для таких кластерних систем потрібно розробити систему повідомлень та розглянути, як ці повідомлення будуть передаватися мережею, і які чинники будуть основними. Для досягнення найефективнішої роботи потрібно досягнути максимального навантаження кожного із вузлів, так як може виникнути ситуація, коли декілька процесорів простоюють, а решта – перевантажені. Рівномірність навантаження досить легко досягнути на симетричних системах, проте майже неможливо на несиметричних кластерах;
Якщо апаратура і програмне забезпечення не підтримує асинхронної передачі даних, то може виникнути ситуація, що деякі процесори очікують коли решта процесорів закінчить роботу. Така ситуація призводить до невеликих накладних витрат в роботі;
Для досягнення найбільш ефективної роботи потрібно досягнути максимально рівномірної навантаженості кожного вузла. Якщо такої рівномірності не буде, то деякі процесори будуть простоювати, а решта – перенавантажені. Рівномірність навантаження досить легко досягнути на рівномірних однорідних системах (системи, в яких всі вузли однакової конфігурації, що з’єднані однаковою мережею). На неоднорідних системах досить важко досягнути рівномірної завантаженості;
Ще один фактор, що впливає на продуктивність – це реальна продуктивність кожного вузла. Різні моделі процесорів можуть мати різну характеристику, а саме: кількість рівнів кеш пам’яті, різні кількості функціональних пристроїв, тощо.
Наприклад, комп’ютер Cray T3E. Кожен процесор має 2 рівні кеш пам’яті, локальну пам’ять, віддалену пам’ять. Всі ці фактори необхідно враховувати для ефективного вирішення задачі. При роботі кожної конкретної задачі, всі перераховані вище фактори можуть зменшувати продуктивність в сотні, тисячі разів. Тому на кластерних системах в основному вирішують або незалежні задачі, або слабозв’язані. Тому треба дуже уважно підходити до вирішення задач на комп’ютері даного класу.
