
- •Івано-Франківський національний технічний
- •Університет нафти і газу
- •Комп’ютерні системи
- •Конспект лекцій
- •Лекція № 1
- •1.1 Архітектура комп’ютерних систем
- •1.2 Паралельна обробка інформації
- •Контрольні запитання
- •Лекція №2 Основи теорії комп’ютерних систем
- •2.1 Класифікація комп’ютерних систем
- •Рисинук 2.2 - Класи комп’ютерних систем
- •2.2 Паралельні алгоритми
- •2.3 Характеристика типових схем комунікації в багатопроцесорних комп’ютерних системах
- •2.4 Закон Амдала
- •Контрольні запитання
- •Лекція №3 Конвеєрні комп’ютерні системи
- •3.1 Обробка інформації векторним процесором
- •3.2 Процесор з паралельним алп
- •3.3 Структура векторного процесора
- •3.4 Векторно-конвеєрні комп’ютерні системи
- •Контрольні запитання
- •Лекція №4 Матричні комп’ютерні системи
- •4.1 Матричний процесор
- •4.2 Матрична комп’ютерна система
- •If a (умова a) then do в
- •4.3 Архітектура матричних комп’ютерних систем
- •4.4 Структура процесорного елементу
- •4.5 Підключення і відключення процесорних елементів.
- •Контрольні запитання
- •Лекція № 5 Комп’ютерні системи класу simd
- •Контрольні запитання
- •Лекція № 6 Мультипроцесорні комп’ютерні системи
- •6.1 Загальна характеристика мультипроцесорних комп’ютерних систем
- •6.2 Мультипроцесори типу numa
- •6.3 Мультипроцесори типу coma
- •6.4 Мультипроцесорна комп’ютерна система Sun Enterprise 10000:
- •Контрольні запитання
- •Лекція №7 Мультикомп’ютерні комп’ютерні системи
- •7.1 Загальна характеристика мультикомп’ютерних комп’ютерних систем
- •Мультикомп’ютерна кс
- •7.2 Рівні комплексування у кс
- •7.3 Кластери
- •7.4 Топологія кластерних пар
- •7.5 Кластер Beowulf
- •7.6 Кластер ac3 Velocity Cluster
- •7.7 Кластер ncsa nt Supercluster
- •Контрольні запитання
- •Лекція № 8 Комп’ютерні системи з нетрадиційною архітектурою
- •8.1 Асоціативні кс
- •8.2 Систолічні кс
- •8.3 Класифікація структур систол
- •8.4 Кс з наддовгими командами (vliw)
- •8.5 Комп’ютерні системи з явним паралелізмом команд
- •8.6 Кс з обробкою за принципом хвильового фронту
- •8.7 Кс на базі трансп'ютерів і з неоднорідним доступом до пам'яті
- •Контрольні запитання
- •Лекція № 9 Організація пам’яті у комп’ютерних системах
- •9.1 Запам’ятовувальні пристрої комп'ютера
- •9.2 Системи із загальною і розподіленою пам'яттю
- •9.3 Багаторівнева організація загальної пам'яті
- •9.4 Пам'ять з чергуванням адрес
- •9.5 Асоціативна пам'ять
- •Контрольні запитання
- •Лекція № 10 Системи введення-виведення
- •10.1 Мережева базова система введення-виведення netbios
- •10.2 Пристрої для зберігання bios
- •10.3 Виробники bios
- •10.4 Принцип роботи bios
- •Контрольні запитання
- •Лекція № 11 Інтерфейси
- •Контрольні запитання
2.3 Характеристика типових схем комунікації в багатопроцесорних комп’ютерних системах
При організації паралельних обчислень в комп’ютерних системах для організації взаємодії, синхронізації і взаємовиключення паралельно виконуваних процесів використовується передача даних між процесорами обчислювального середовища. Часові затримки при передачі даних по лініях зв'язку можуть виявитися істотними (в порівнянні з швидкодією процесорів) і, як результат, комунікаційна трудомісткість алгоритму робить істотний вплив на вибір паралельних способів рішення задач.
Структура ліній комутації між процесорами обчислювальної системи (топологія мережі передачі даних) визначається, як правило, з урахуванням можливостей ефективної технічної реалізації. Важливу роль при виборі структури мережі має і аналіз інтенсивності інформаційних потоків при паралельному рішенні найбільш поширених обчислювальних задач. До типових топологій зазвичай відносять наступні схеми комунікації процесорів (рис. 2.5):
повний граф (completely-connected graph or clique) - система, в якій між будь-якою парою процесорів існує пряма лінія зв'язку. Як результат, дана топологія забезпечує мінімальні витрати при передачі даних, проте є такою, що складно реалізовується при великій кількості процесорів;
лінійка (linear array or farm) - система, в якій кожен процесор має лінії зв'язку тільки з двома сусідніми (з попереднім і подальшим) процесорами. Така схема просто реалізовується, але з іншого боку, відповідає структурі передачі даних при рішенні багатьох обчислювальних задач (наприклад, при організації конвейєрних обчислень);
кільце (ring) - дана топологія утворюється з лінійки процесорів з'єднанням першого і останнього процесорів лінійки;
зірка (star) - система, в якій всі процесори мають лінії зв'язку з деяким процесором, що керує. Дана топологія є ефективною, наприклад, при організації централізованих схем паралельних обчислень;
грати (mesh) - система, в якій граф ліній зв'язку утворює прямокутну сітку (зазвичай дво- або три- мірну); подібна топологія може бути досить просто реалізована і, крім того, може бути ефективно використовувана при паралельному виконанні багатьох чисельних алгоритмів (наприклад, при реалізації методів аналізу математичних моделей, що описуються диференціальними рівняннями в часткових похідних);
гіперкуб (hypercube) - дана топологія представляє окремий випадок структури грат, коли по кожній розмірності сітки є тільки два процесори (тобто гіперкуб містить 2N процесорів при розмірності N); даний варіант організації мережі передачі даних досить широко поширений в практиці і характеризується наступним рядом ознак:
два процесори мають з'єднання, якщо двійкове представлення їх номерів має тільки одну позицію, що відрізняється;
у N-мірному гіперкубі кожен процесор пов'язаний рівно з N сусідами;
N-мірний гіперкуб може бути роздільний на два (N - 1)-мірних гіперкуба (всього можливо N різних таких розділень);
найкоротший шлях між двома будь-якими процесорами має довжину, яка співпадає з кількістю відмінних бітових значень в номерах процесорів (дана величина відома як відстань Хеммінга).
а) повний граф б) лінійка
в) кільце г) зірка
д) грати е) гіперкуб
Рисунок 2.5 – Приклади топологій багатопроцесорних комп’ютерних систем
Схема ліній передачі даних може реалізовуватися на апаратному рівні (між процесорами), а може бути реалізована за допомогою відповідного програмного забезпечення. Введення віртуальних (що програмно-реалізовуються) топологій сприяє мобільності паралельних програм, що розробляються, і знижує витрати на програмування.