- •Питання:
- •Області застосування і задачі паралельної обробки
- •5. Рівні розпаралелювання
- •Рівень процедур
- •6. Паралельні операції
- •7. Основні принципи паралелізму (розпаралелення)
- •8. Класифікація структур паралельної обробки
- •Тема №2 “Методи оцінки продуктивності паралельних алгоритмів і систем” Питання:
- •2. Фактори, що необхідно враховувати при оцінці продуктивності
- •3. Методи оцінки продуктивності паралельних систем
- •4. Характеристики продуктивності паралельних алгоритмів.
- •Масштабність (Scaleup)
- •Визначення для варіантів програми, що мають різну величину
- •5. Порівняння mimd і simd структур за продуктивністю
- •Висновки
- •2. Прості мережі Петрі
- •3. Розширені мережі Петрі
- •4. Приклади реалізації мереж Петрі
- •Тема 4: Розробка паралельного алгоритму
- •1. Паралелізм даних
- •2. Паралелізм задач
- •3. Етапи розробки паралельного алгоритму
- •1. Паралелізм даних
- •2. Паралелізм задач
- •3. Етапи розробки паралельного алгоритму
- •Тема №5: Структури зв’язку між процесорами
- •2. Шинні мережі
- •3. Мережі з комутаторами
- •4. Структури, що забезпечують зв'язок типу "пункт-пункт"
- •5. Методи комутацій
- •Питання:
- •2. Масивно - паралельні системи (mpp)
- •Симетричні мультипроцесорні системи (smp)
- •Системи з неоднорідним доступом до пам'яті (numa)
- •Паралельні векторні системи (pvp)
- •Кластерні системи
- •Тема №7: Схеми паралельних алгоритмів задач. Питання:
- •1. Схеми алгоритмів задач
- •2. Алгоритми перемноження матриці на матрицю і їх реалізація на структурах типу: кільцева, 2d (решітка), 3d (куб)
- •Схеми алгоритмів задач
- •2. Алгоритми перемноження матриці на матрицю і їх реалізація на структурах типу: кільцева, 2d (решітка), 3d (куб)
- •7. Збір результатів у с
- •2.Scatter b координати 3. Broadcast підматриць a
- •4. Broadcast 5. Обчислення підматриць b добутків (підматриць в c)
- •6. Збір результатів в c
- •2. Scatter b 3. Broadcast підматриць з а
- •4. Broadcast підматриць з у 5. Обчислення добутків підматриць у с)
- •6. Reduce (підсумовування)добутків 7. Gather c (збір результатів)
- •Тема №8: Мови паралельного програмування Питання:
- •2. Класифікація мов і систем паралельного програмування
- •3. Особливості організації паралельної програми
- •4. Технології паралельного програмування Message Passing Interface (mpi)
- •5. Операції обміну повідомленнями
- •Висновки
- •Література
- •Додатки Додаток а
- •Додаток б концепції паралельної обробки Співпрограми
- •Fork (розгалуження, виникнення паралельних процесів) I Join (об’єднання)
- •Процеси
- •Дистанційний виклик
- •Неявна паралельність
- •Проблеми асинхронної паралельності
- •Несумісні дані
- •Втрачена модифікація даних
- •Блокування
- •Балансування завантаження
- •Проблеми синхронної паралельності
- •Індексовані векторні операції
- •Відображення віртуальних процесорів на фізичні процесори
- •Зменшення пропускної спроможності під час підключення периферійної апаратури
- •Ширина частотної смуги комутаційних мереж.
- •Робота в режимі багатьох користувачів і толерантність до помилок.
- •Організація паралельних обчислень Навчальний посібник
- •Розподілені обчислення
- •[Ред.]Список проектів розподілених обрахунків
- •[Ред.]Список українських проектів розподілених обчислень
- •[Ред.]Біологія та медицина
- •[Ред.]Математика та криптографія
- •[Ред.]Природничі науки
- •[Ред.]пз для організації розподілених обчислень
- •[Ред.]Дивіться також
- •[Ред.]Ресурси інтернету
- •Паралельні та розподілені обчислення
- •[Ред.]Симетрична багатопроцесорність
- •[Ред.]Розподілені обчислення
- •[Ред.]Кластерні обчислення
- •[Ред.]Масово паралельні обчислення
- •[Ред.]Обчислення Ґрід
- •[Ред.]Спеціальні паралельні комп'ютери
- •[Ред.]Посилання
- •Основні етапи проектування паралельних та розподілених алгоритмів
- •8.1. Декомпозиція
- •8.2. Зв'язок
- •8.3. Синхронізація
2.Scatter b координати 3. Broadcast підматриць a
4. Broadcast 5. Обчислення підматриць b добутків (підматриць в c)
6. Збір результатів в c
Рис. 7.4 Стадії обчислення добутку матриць у 2D паралельному алгоритмі.
Алгоритм 3 - Перемноження матриці на просторовій сітці комп’ютерів
Для великих матриць, час обчислення добутків може бути зменшений шляхом застосуванням алгоритму, що здійснює обчислення на 3-мірній (просторовій) сітці комп'ютерів.
У приведеному нижче алгоритмі відображаються основні дані обсягом n1 х n2 + n2 х n3 + n1 х n3 на об'ємну сітку комп'ютерів розміром p1 х p2 х p3. Матриці розрізані, як показано на рис. 7.5: Матриця А розрізана на p1 х p2 субматриці, матриця B розрізана на p2 х p3 субматриці, і матриця C розрізана на p1 х p3 субматриці. Комп'ютер (i,j,k) обчислює добуток субматриці (i,j) матриці А і субматриці (j,k) матриці B. Субматриця (i,k) матриці C виходить підсумовуванням проміжних результатів, обчислених у комп'ютерах (i,j,k), j = 0,...,p2-1.
Послідовність стадій обчислення наведена на рис. 7.6.
1. Субматриці А розподіляються в (x,y,0) площині.
2. Субматриці B розподіляються в (0,y,z) площині.
3. Субматриці А поширюються у вимірі z.
4. Субматриці B поширюються у вимірі х.
5. Кожен процес обчислює одну субматрицю.
6. Проміжні результати редукується у вимірі y.
7. Матриця C збирається з (x,0,z) площини.
Алгоритм подібний до попереднього, але додатково розрізаються ще смуги матриць, і ці розрізані смуги розподіляються в третьому вимірі y. У даному випадку в кожному комп'ютері будуть перемножуватися тільки частини векторів рядків матриці А і частини стовпців матриці B. В результаті буде тільки часткова сума для кожного елемента результуючої матриці C. Операція підсумовування уздовж координати y цих отриманих часткових сум для результуючих елементів і завершує обчислення матриці C.
Загальний час обчислень у цьому алгоритмі дорівнює:
T = (U+S)/(p1*p2*p3)
А відношення часу "обчислень без обмінів" до загального часу обчислень є величина:
K = (U+S)/(U+S)=1.
A B C
Рис. 7.5 Розрізування даних для паралельного алгоритму добутку двох матриць при обчисленні на просторовій сітці комп'ютерів.
2. Scatter b 3. Broadcast підматриць з а
4. Broadcast підматриць з у 5. Обчислення добутків підматриць у с)
6. Reduce (підсумовування)добутків 7. Gather c (збір результатів)
Рис. 7.6. Стадії обчислень у 3D паралельному алгоритмі добутку матриць.
Вправи і завдання до теми №7
-
Розробіть паралельний алгоритм обчислення величини , де А і В – одновимірні масиви.
-
Дані матриці А і В. Розробіть алгоритм обчислення матриці С = А*В – В*С.
-
Дана матриця А і вектори а і b. Розробіть алгоритм обчислення матриці С = а - А* b.
-
Чи можлива різна кількість смуг, на які діляться матриці А і В при обчисленні добутку двох матриць на кільцевій структурі?
-
Наведіть переваги і недоліки організації перемноження двох матриць на структурах, які описані в даній темі?
-
Наведіть переваги і недоліки організації початкового завантаження при перемноженні двох матриць на структурах, які описані в даній темі?