
- •Питання до модульного контролю з предмету паралельні обчислювальні процеси
- •Що таке паралелізм?
- •Ціль технології паралелізму?
- •Два основних підходи до реалізації паралелізму.
- •Переваги паралелізму.
- •Найпростіша модель паралельного програмування (pram).
- •Основні алгоритми паралельної роботи (записзчитування).
- •Класифікація схем паралелізму.
- •Проста модель розподіленого програмування.
- •Декомпозиція, зв'язок та синхронізація.
- •Базові рівні програмного паралелізму.
- •Стандарти мрі.
- •Стандарти кластерного програмування.
- •Стандарти corba.
- •Три рівні паралелізму в комп’ютерній програмі.
- •Проблема зв’язку та синхронізації в паралельному програмуванні.
- •Posix-специфікація: п’ять базових механізмів.
Декомпозиція, зв'язок та синхронізація.
Декомпозиція
Декомпозиція – це процес розбиття задачі і її розв’язку на частини. Інколи частини формуються в логічні області (тобто пошук, сортування, обчислення, ввід і вивід даних та інше).В інших випадках частини групуються за логічними ресурсами (тобто файл, зв'язок, принтер, база даних та інше). Декомпозиція програмного рішення часто вирішується декомпозицією робіт (work breakdown structure - WBS). Декомпозиція робіт визначає, що повинні робити різні частини ПЗ. Одна з основних проблем паралельного програмування – ідентифікація природної декомпозиції робіт для програмного рішення. Не існує простого і однозначного підходу до ідентифікації WBS. Розробка ПЗ – це процес переклад принципів, ідей, шаблонів, правил, алгоритмів або формул в перелік (набір) інструкцій, які виконуються, і даних, які обробляються комп’ютером. Це, в основному, і є процес моделювання. Програмні моделі – це реалізація у вигляді ПЗ деякої реальної задачі, процесу або ідеалу. Мета моделі – імітація або копіювання поведінки і характеристики деякої реальної сутності в конкретній предметній області. Процес моделювання виявляє природну декомпозицію робіт програмного рішення. Чим краще модель зрозуміла і розроблена, тим більш природною буде декомпозиція робіт. Наша мета – виявити паралелізм і розподіл за допомогою моделювання. Якщо прродний паралелізм не спостерігається, не потрібно його насильно нав’язувати. На питання, як розділити додаток на частини, що виконуються паралельно, необхідно знайти відповідь в період проектування, правильність цієї відповіді повинна бути очевидною в моделі рішення. Якщо модель задачі і рішення не передбачають паралелізму і розподілення, необхідно знайти послідовне рішення. Якщо послідовне рішення виявиться невдалим, така невдача може дати ключ до необхідного паралельного рішення.
Зв'язок
Після декомпозиції програмного рішення на перелік частин які виконуються паралельно як правило виникає питання про зв'язок цих частин між собою. Як же реалізувати зв'язок, якщо ці частини розділені за різними процесами або різними комп’ютерами? Чи повинні різні частини ПЗ спільно використовувати загальну область пам’яті? Яким чином одна частина ПЗ дізнається про те, що інша справилася зі своєю задачею? Яка частина повинна першою почати роботу? Звідки один компонент дізнається про відмову іншого компонента? На ці та інші питання необхідно знайти відповіді при проектування паралельних та розподілених систем. Якщо окремим частинам ПЗ не потрібно зв’язуватись між собою, тоді, вони в дійсності не створюють єдиний додаток.
Синхронізація
Декомпозиція робіт, говорилося вище, визначає, що повинні робити різні частини ПЗ. Коли декілька компонентів ПЗ працюють в межах однієї задачі, їх функціонування необхідно координувати. Певний компонент повинен вміти визначати, коли досягається рішення всієї задачі. Необхідно також скоординувати порядок виконання компонент. При цьому виникає багато запитань. Чи всі частини ПЗ повинні одночасно притупити до роботи або тільки деякі, а інші можуть знаходитися в стані очікування? Яким двом (або більше) компонентам необхідний доступ до одного і того ж ресурсу? Хто має право отримати доступ першим? Якщо деякі частини ПЗ завершать свою роботу значно раніше інших, то чи потрібно їм доручити нову роботу? Хто повинен надавати нову роботу в таких випадках? ДЗС (декомпозиція, зв'язок, синхронізація) – це той мінімум запитань, які необхідно вирішувати, починаючи паралельне або розподілене обчислення. Окрім суті проблем, які виникають з ДЗС, важливо також розглянути їх прив’язку. Існує декілька рівнів паралелізму при розробці додатків, і на кожному з них ДЗС-складові застосовуються по різному.