
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
1) Язикові розширення.
Цей підхід вимагає рішення ряду питань:
підтримка повторного входу;
утворення й завершення паралельних процесів;
синхронізація паралельних процесів;
підрозділ даних на локальні й поділювані дані процесів;
Переваги такого підходу полягають у наступному. У багатьох випадках розширення можуть бути зроблені тільки за рахунок додавання нових бібліотечних програм. При цьому вхідна мова й відповідний компілятор залишаються незмінними. Це відносно недорого для експериментів з альтернативними розширеннями. Ті з них, які виявляться вдалими для певного класу завдань, можуть бути збережені.
Недолік. У компілятора відсутні знання, як розпаралелити програму. Це унеможливлює аналіз розподілу даних між процесами, що не дозволяє виконати оптимізацію, компілятор може виконати неприпустимі переміщення частин програми, не звертаючи уваги на критичну секцію, що може привести до порушень і некоректності.
2) Розширення компіляторів.
Цей підхід вимагає дуже складного компілятора. У цей час всі роботи в цьому напрямку орієнтовані на аналіз циклів з метою виявлення можливості максимального їх розпаралелення.
Однак залишаються невирішеними два питання:
Якщо зусилля компілятора концентруються на циклах як джерелах розпаралелення, то який ступінь розпаралелення може бути досягнутий?
Якщо компілятор повинен звертатися до викликів підпрограм, то наскільки ефективно вони можуть визначати й використати можливості розпаралелення і її реалізацію. Адже розпаралелення пов'язане з усуненням залежності від даних. Але в підпрограмах залежності даних важкі для визначення, оскільки при статичному аналізі програми не завжди вдається встановити, які змінні будуть передаватися в різні підпрограми.
3) Додавання нового язикового рівня.
Цей підхід пов'язаний з тим, що більшість помилок у паралельних програмах пов'язані з паралельною структурою, тобто з каркасом програми, а не із внутрішніми деталями обчислень. Звідси вихід - для опису каркаса програми використати нові язикові форми, а специфікацію внутрішніх частин програми зберегти на існуючих мовах (Фортран, Паскаль, Сі).
Такий дворівневий підхід може бути реалізований з використанням препроцесора до компілятора об'єктної мови, що підтримує паралельне програмування.
Недоліки:
Специфікується тільки синхронізація взаємодії процесів, але не розподіл даних;
Утрудняється налагодження.
4) Нова мова.
Найбільш радикальний підхід.
Недолік: ця стратегія пов'язана з дуже великими витратами й інтенсивною працею. Існуючі прикладні програми повинні бути переписані. Однак для нових розробок такий підхід може виявитися найбільш перспективним.
3.Архітектура паралельної обробки.
Процесори можуть з'єднуватися один з одним різними способами, створюючи розмаїтість архітектури паралельної обробки.
Також існують різноманітні методи або парадигми програмування цих машин.
Паралельні архітектури звичайно класифікуються відповідно до таксономії Фліна:
Множинний потік команд - одиночний потік даних (МКОД)
Кілька процесорів одночасно виконують різні потоки команд над одним потоком даних.
Типовим прикладом такої архітектури є конвеєрні системи.
2. Одиночний потік команд - множинний потік даних (ОКМД) або SIMD (Single Instruction Multiple Data).
Кілька процесорів одночасно виконують ту саму команду над різними потоками даних.
3. Множинний потік команд - множинний потік даних (МКМД ) або MIMD (Multiple Instruction Multiple Data).
Кожний процесор може виконувати різні команди над різними потоками даних.
1. Машини класу МКОД, або конвеєрні машини, засновані на поділі всього алгоритму на елементарні завдання, які можуть виконуватися послідовно. Такі машини складаються з елементарних процесорів, видимих для кожного завдання й працюючих паралельно.
Дані вводяться в конвеєр по кроках обробки. На кожному кроці одна операція виконується над кожним елементом даних, у той час як різні кроки по обробці даних виконуються послідовно.
Як тільки конвеєр заповнений, після кожного циклу видається новий результат поза залежністю від типу кроків у цьому ланцюжку.
Швидкість таких машин визначається швидкістю самого повільного процесора й тому істотним є поділ алгоритму на елементарні завдання.
Перевагою машини класу МКОД є регулярні зв'язки між елементами конвеєра й простота програмування; однак такі машини погано працюють там, де алгоритм обробки істотно залежить від даних.
2. Машини ОКМД.
Складаються з масиву ідентичних обробних елементів (ОЕ), керованим одним пристроєм керування. Всі ОЕ виконують синхронно ту саму програму синхронно пошагово над різними даними.
Звичайно ОЕ утворять двомірний масив, причому кожний ОЕ має власну локальну пам'ять.
ОЕ в машинах класу ОКМД звичайно є однобітовими арифметичними пристроями й дані мають довжини 1 біт.
3. Машини класу МКМД.
Незалежні процесори виконують різні програми й процесори взаємодіють один з одним. Процесори завжди мають локальну пам'ять, а також мають доступ до загальної поділюваної пам'яті або до пам'яті всіх інших процесорів. Схема зв'язку може бути або фіксованою, або перемикальною.
На базі цих машин можна створювати дуже гнучкі архітектури, однак є труднощі із програмуванням.