- •5. Паралельні і розподілені обчислення
- •1. Розширені мережі Петрі. Типи розширень. Модифіковані правила активізації і ввімкнення переходів.
- •2. Конвеєрна обробка. Пікова та реальна продуктивність. Графік залежності продуктивності конвеєрного пристрою від довжини вхідного набору даних.
- •3. Ступінь деталізації декомпозиції, ступінь паралелізму паралельного алгоритму. Граф залежності задач.
- •4. Взаємодія задач при паралельній обробці. Граф взаємодії задач.
- •5. Вартість операції, завантаженість пристрою, прискорення системи. 1-й закон Амдала.
- •6. Другий та третій закони Амдала.
- •7. Потоки і багатозадачність. Потік, процес, програма, багатопотоковість. Типи потоків, види багатозадачності. Правила використання потоків.
- •Правила використання потоків
- •8. Організація обчислень в машинах потоків даних.
- •Обчислення в мпд
- •9. Декомпозиція задач за вхідними даними.
- •10. Декомпозиція задач за вихідними даними.
- •11. Дослідницька декомпозиція задач.
- •12. Декомпозиція задач за проміжними даними.
- •13. Граф машин потоків даних (мпд) і його основні елементи.
- •14. Способи взаємодії ниток при багато потоковому програмуванні: семафори, події, взаємне виключення.
- •15. Рекурсивна декомпозиція. Приклад швидкого сортування масиву чисел.
Правила використання потоків
Для досягнення підвищеного паралелізму.
Дуже часто додаткам вимагається виконувати декілька задач одночасно.
З метою спрощення конструкції.
Популярний спосіб спрощення структури складних систем – використання черг і асинхронної обробки. Щоб задіяти таку конструкцію вам доведеться підготувати черги для обробки подій, що відбуваються у вашій системі. Замість прямого виклику методів створюються об’єкти і поміщаються в черги , в яких відбувається їх обробка. На іншому кінці цих черг працює багато потокові серверні програми, налаштовані на відстежування повідомлень , що приходять в ці черги. Перевага спрощених конструкцій цього типу – надійність, стійкість і розширюваність заснованих на них систем.
Для ефективного використання процесорного часу.
Часто ваш додаток реально не виконує ніякої роботи, в той же час продовжуючи використовувати свій квант. Прикладом може служити очікування виводу документів на друк або закінчення операцій введення-виведення жорсткого диску CD-ROM. У кожному з цих випадків процесорний час не використовується. Ці випадки є кандидатами на перевід в потоки, що працюють у фоновому режимі.
8. Організація обчислень в машинах потоків даних.
Такі машини анулюють дві риси машин Фон-Неймана, а саме:
лічильник команд
традиційна пам'ять
Принцип роботи таких систем базується на використанні правила запалювання: команда оголошується готовою до виконання, як тільки обчислені всі операнди, що необхідні для її виконання. Команда, для якої ця умова виконана, називається командою, що спрацювала. У відповідності до описаного вище правила, дана модель є асинхронною. Оскільки доступність обчислених операндів дозволяє одночасне виконання декількох операторів, то паралельність дії є внутрішньою властивістю схем потоків даних.
Обчислення в мпд
Програма в МПД може бути представлена як орієнтований граф. Дуги в ньому бувають двох типів:
неперервні (такі дуги переносять числову та строкову інформацію) – зв’язки даних
перервані (переносять булеві змінні) – зв’язки керування
Вершинами такого графу є актори, які бувають 5 типів:
розмножувачі
блоки виконання операцій
блоки прийняття рішень
змішувачі
клапани або вентилі
9. Декомпозиція задач за вхідними даними.
Процес розподілу обчислень на менші частини, деякі або всі з яких можуть бути виконані паралельно, називається декомпозицією.
Застосовується до даних, які оперують великими масивами чисел. Проводиться в два етапи:
розділення даних
використання для розподілу основного завдання на окремі задачі цього розділення
Секціонування здійснюється різними способами, буває різних типів:
секціонування за вихідними даними
секціонування за вхідними даними
секціонування за вхідними і вихідними даними
секціонування за проміжними даними
Правило власника обчислень – кожне секціонування має виконувати обчислення над всіма даними, якими володіє.
Секціонування за вхідними даними застосовується у випадку, коли кожен вихідний елемент обчислюється як функція входу, але секціонування за вихідними даними неможливе
Приклад: визначення мінімуму або максимуму з набору чисел