- •5. Паралельні і розподілені обчислення
- •1. Розширені мережі Петрі. Типи розширень. Модифіковані правила активізації і ввімкнення переходів.
- •2. Конвеєрна обробка. Пікова та реальна продуктивність. Графік залежності продуктивності конвеєрного пристрою від довжини вхідного набору даних.
- •3. Ступінь деталізації декомпозиції, ступінь паралелізму паралельного алгоритму. Граф залежності задач.
- •4. Взаємодія задач при паралельній обробці. Граф взаємодії задач.
- •5. Вартість операції, завантаженість пристрою, прискорення системи. 1-й закон Амдала.
- •6. Другий та третій закони Амдала.
- •7. Потоки і багатозадачність. Потік, процес, програма, багатопотоковість. Типи потоків, види багатозадачності. Правила використання потоків.
- •8. Організація обчислень в машинах потоків даних.
- •Правила використання потоків
- •Обчислення в мпд
- •9. Декомпозиція задач за вхідними даними.
- •10. Декомпозиція задач за вихідними даними.
- •11. Дослідницька декомпозиція задач.
- •12. Декомпозиція задач за проміжними даними.
- •13. Граф машин потоків даних (мпд) і його основні елементи.
- •14. Способи взаємодії ниток при багато потоковому програмуванні: семафори, події, взаємне виключення.
- •15. Рекурсивна декомпозиція. Приклад швидкого сортування масиву чисел.
Обчислення в мпд
Програма в МПД може бути представлена як орієнтований граф. Дуги в ньому бувають двох типів:
неперервні (такі дуги переносять числову та строкову інформацію) – зв’язки даних
перервані (переносять булеві змінні) – зв’язки керування
Вершинами такого графу є актори, які бувають 5 типів:
розмножувачі
блоки виконання операцій
блоки прийняття рішень
змішувачі
клапани або вентилі
Конфігурація схеми потоку даних
Обчислення графу потоку операндів описується послідовністю змін стану графу. Кожен стан відображає потік операндів програми з ознаками і відповідними значеннями, що розміщенні на дугах графа програми [6]. Обчислення переходить від одного стану до іншого за рахунок спрацьовування вершин обох типів, яке стає можливим після виконання попереднього кроку.
Конфігурацією схеми потоку даних для інтерпретації з областю визначення D є:
1. Зіставлення значення з D або символу null кожній дузі даних схеми S.
2. Зіставлення одного з символів {true, false, null} кожній управляючій дузі схеми.
Конфігурація зображається за допомогою фішок, розставлених на дугах, яким зіставлене непорожнє значення, поряд пишемо саме це значення.
Обчислення С по схемі S є послідовність конфігурацій х0, x1, ..., xn, …, задовільняюча властивостям:
1. х0 є початкова конфігурація.
2. xi+1 виходить з xi, - згідно одному з правил спрацьовування, визначених на мал.4, де над рискою виписана умова застосованості правила, а під — одержана в результаті спрацьовування нова конфігурація. Будь-яка вершина, готова до спрацьовування в конфігурації xi, може бути вибрана для запалення. Оскільки одночасно готові всі вершини, для яких обчислені вхідні запалення, і оскільки всі готові вершини можуть запалитися, паралель дії є внутрішнім аспектом схеми потоку даних. Більш того, ці схеми є «максимально паралельними» конструкціями, так - послідовність виконання функцій і предикатів визначається залежністю за даними.
9. Декомпозиція задач за вхідними даними.
Процес розподілу обчислень на менші частини, деякі або всі з яких можуть бути виконані паралельно, називається декомпозицією.
Застосовується до даних, які оперують великими масивами чисел. Проводиться в два етапи:
розділення даних
використання для розподілу основного завдання на окремі задачі цього розділення
Секціонування здійснюється різними способами, буває різних типів:
за вихідними даними – такий тип розподілу задач можливий, коли кожний вихідний елемент може бути обчислений як функція входу не залежно від решти вихідних елементів. Приклад матричного множення
| A11 A12| * | B11 B12| = | C11 C12|
| A21 A22| * | B21 B22| | C11 C12|
розподіл за вхідними даними. Він може бути здійснений лише в тому випадку, якщо кожен вихідний результат є функцією від вхідних даних, але секціонування з вхідними даними неможливе. Приклад: знаходження мінімуму, максимуму функції.
секціонування за вхідними і вихідними даними
Декомпозиція за проміжними даними.визначаються як багатоступінчасті обчислення, результат одного завдання є входу до решти, зазвичай призводять до більш високого ступеня розпаралелювання, але частіш за все не існують. Розглянемо повторно приклад матричного множення:
| A11|| * | B11 B12|
| A21|
… = | C11 C12|
| A12| * | B21 B22| | C11 C12|
|A22|
Правило власника обчислень – кожне секціонування має виконувати обчислення над всіма даними, якими володіє.
Секціонування за вхідними даними застосовується у випадку, коли кожен вихідний елемент обчислюється як функція входу, але секціонування за вихідними даними неможливе
Приклад: визначення мінімуму або максимуму з набору чисел
