- •Тема 1. Вступ в паралельні та розподілені обчислення.
- •Поняття паралелізму.
- •Два узагальнені підходи до досягнення паралельності.
- •3. Переваги паралельних обчислень
- •4. Найпростіша модель розпаралелення
- •Переваги розподілених обчислень.
- •6. Найпростіші моделі розподілених обчислень.
- •7. Мульти-агентні розподілені обчислення.
- •8. Основні етапи проектування паралельних та розподілених алгоритмів.
- •8.1. Декомпозиція
- •8.2. Зв'язок
- •8.3. Синхронізація
- •9. Базові рівні програмного паралелізму
- •9.1. Паралелізм на рівні інструкцій
- •9.2. Паралелізм на рівні підпрограм
- •9.3. Паралелізм на рівні об'єктів
- •9.4. Паралелізм на рівні програм
- •Тема 2. Архітектура паралельних обчислювальних систем.
- •Класифікація паралельних комп’ютерів та систем
- •Векторно-конвеєрні комп’ютери
- •Паралельні комп’ютери з спільною пам’яттю
- •Паралельні комп’ютери з розподіленою пам’яттю
- •Концепція grid або метакомп’ютеринг
- •Тема 3. Основні моделі паралельних та розподілених обчислень.
- •Основні типи паралельних програм.
- •Ітеративний паралелізм.
- •3. Рекурсивний паралелізм
- •4. Модель „виробники-споживачі"
- •5. Паралельна парадигма „клієнт - сервер"
- •6. Паралельна модель „взаємодіючі рівні"
- •Тема 4: Засоби розробки паралельних програм.
- •1.Основні підходи до розробки паралельних програм
- •2.Використання бібліотеки паралельного програмування pthreads
- •Навчальний приклад: Pthreads
- •3. Бібліотека паралельного програмування OpenMp
- •4. Бібліотека паралельного програмування мрі
- •Система програмування mpi
- •Властивості та класифікація процесу.
- •Незалежні та взаємодіючі обчислювальні процеси.
- •Види задач синхронізації паралельних процесів.
- •Синхронізація за допомогою блокування пам’яті.
- •Алгоритм деккера.
- •Команда “перевірка” та “встановлення”.
- •Використання семафорів для синхронізації та впорядкування паралельних процесів.
- •Монітороподібні засоби синхронізації паралельних процесів.
- •Поштові ящики.
- •Конвеєри.
- •Черги повідомлень.
Векторно-конвеєрні комп’ютери
Векторо-конвеєрні комп’ютери вперше були розроблені в 1976 р. Їх архітектура організована наступним чином:
ВР – верхній регістр
БК – буфер команд
ВВ – пристрій вводу-виводу
ЗП – запам’ятовуючі пристрої
Кожен процесор має набір стандартів, склярних і векторних регістрів. Команди поступають до процесора через свою шину команд і записуються в буфер команд, що представляє собою конвеєр. Такий процесор здатен виконувати певні множини команд, які завчасно записує на конвеєр, що знаходиться в середині самого процесора. Команда складається з скалярних і векторних операндів, які при поступленні команди з пам’яті в процесор паралельно записуються в скалярні і векторні регістри, тому такі процесори були названі векторно-конвеєрні. Наявність секції між процесорною взаємодією дозволяє передавати швидко дані в обхід загальної пам’яті.
Паралельні комп’ютери з спільною пам’яттю
В комп’ютерах такої архітектури всі процесори і модулі пам’яті зв’язані між собою з допомогою спеціальної з’єднуючої мережі.
ЗМ – зв’язуюча мережа
В кожного процесора є внутрішній кеш (К), але до доступу до даних він використовує загальну пам’ять через зв’язуючу мережу.
При кількості процесорів від 2 до 32 зв’язуюча мережа реалізовується у вигляді шини пам’яті або комутатора. Такий паралельний комп’ютер називається однорівневим і в літературі позначається UMA (Unified Memory Access). Через те, що час доступу кожного з процесорів до любого участку пам’яті є однакова, такі комп’ютери називають ще симетричними багатопроцесорними комп’ютерами. У великих комп’ютерах з більшою кількістю процесорів (десятки, сотні) пам’ять організована ієрархічно. З’єднувальна мережа має вид деревоподібного набору перемикачів і областей пам’яті. Відповідно певна область пам’яті є ближча до певного процесора, а певна область пам’яті є дальша від нього. Перевагою такої організації пам’яті є запобігання перевантаження з’єднувальної мережі, як у випадку з UMA-машинами. У випадку деревоподібної організації спільної пам’яті така машина називається NUMA-машиною (неоднаковий час доступу до спільної пам’яті).
Паралельні комп’ютери з розподіленою пам’яттю
В комп’ютерах такої архітектури також є з’єднувальна мережа, але кожен процесор при цьому має свою пам’ять.
З’єднувальна мережа підтримує передачу повідомлень, а не операції читання запису пам’яті. Кожен процесор взаємодіє тільки зі своєю пам’яттю. Збільшується швидкість доступу до пам’яті, нема необхідності узгоджувати вміст кешу і пам’яті, взаємодія між процесорами здійснюється за допомогою повідомлень.
Концепція grid або метакомп’ютеринг
Основа цієї концепції базується на ідеї кластерних обчислень.
Обчислювальний кластер – це система стандартних комп’ютерів, бажано з однаковою обчислювальною потужністю, з’єднаних за допомогою стандартної локальної обчислювальної мережі.
На них завантажене спеціальне програмне забезпечення, яке дозволяє розглядати комп’ютери, з’єднані в кластер в якості однієї обчислювальної системи. Зараз технологія кластерів практично доступна любому університету чи приватній фірмі. Базуючись на кластерних обчисленнях система GRID розглядає мережу Internet, як однин самий великий комп’ютер в світі. Ніяка обчислювальна система в світі не зрівняється з параметрами пікової продуктивності, об’єму оперативної та дискової пам’яті, з тими сумарними ресурсами, що мають комп’ютери, які під’єднані до Internetу. Така система, тобто комп’ютери, що під’єднані до Internetу і дають свої обчислювальні потужності для виконання якоїсь задачі називається метакомп’ютеринг. Зовсім не обов’язково розглядати Internet в якості комунікаційного середовища метакомп’ютера, цю роль може виконати будь-яка мережева технологія.
