
- •Питання до модульного контролю з предмету паралельні обчислювальні процеси
- •Що таке паралелізм?
- •Ціль технології паралелізму?
- •Два основних підходи до реалізації паралелізму.
- •Переваги паралелізму.
- •Найпростіша модель паралельного програмування (pram).
- •Основні алгоритми паралельної роботи (записзчитування).
- •Класифікація схем паралелізму.
- •Проста модель розподіленого програмування.
- •Декомпозиція, зв'язок та синхронізація.
- •Базові рівні програмного паралелізму.
- •Стандарти мрі.
- •Стандарти кластерного програмування.
- •Стандарти corba.
- •Три рівні паралелізму в комп’ютерній програмі.
- •Проблема зв’язку та синхронізації в паралельному програмуванні.
- •Posix-специфікація: п’ять базових механізмів.
Posix-специфікація: п’ять базових механізмів.
POSIX- специфікація підтримує п’ять базових механізмів, які використовуються для реалізації взаємодії між процесами:
файли з засобами блокування та розблокування;
канали (неіменовані, іменовані і черги FIFO);
загальна пам'ять і повідомлення;
сокети;
семафори.
Кожен з цих механізмів має переваги, недоліки, складні питання глухі кути які проектувальники і розробники ПЗ повинні обов’язково враховувати, якщо хочуть створити надійний і ефективний зв'язок між декількома процесами. Організувати взаємодію. між декількома потоками (які інколи називають полегшеними процесами) зазвичай простіше, ніж між процесами, оскільки потоки використовують загальний адресний простір. Це означає, що кожен поті в програмі може легко передавати параметри, приймати значення, які повертаються функціями, і отримувати доступ до глобальних даних. Але якщо взаємодію процесів або потоків не спроектовано відповідним чином, виникають такі проблеми, як взаємне блокування, нескінчені відтермінування та інші ситуації гонок даних. Необхідно зауважити, що подані вище проблеми характерні як для розподіленого, так і для паралельного програмування.
Не дивлячись на те що системи з виключно паралельною обробкою відрізняються від систем з виключно розподіленою обробкою, ми зумисне не проводили межі між проблемами координації в розподілених і паралельних системах. Частково це пояснюється деяким перекриттям існуючих проблем, і частково тим, що деякі рішення проблем в одній області часто можемо використати для вирішення в іншій. Але головна причина узагальненого підходу полягає в тому, що в наш час гібридні (паралельно-розподілені) системи стають загальновживаними. Сучасний стан паралельній обробці даних визначають кластери і мережі. Унікальні кластерні конфігурації реалізують з готових продуктів. Такі архітектури містять колекцію комп’ютерів з багатьма процесорами, а одно процесорні системи відходять в минуле. В майбутньому передбачається, чисто розподілені системи будуть вбудовані у вигляді комп’ютерів з декількома процесорами. Це означає, що на практиці проектувальник або розробник ПЗ буде тепер все частіше стикатися з проблемами розподілу та паралелізму. Тому ми розглядаємо всі ці проблеми в одному просторі. В табл. 1. подано комбінації паралельного та розподіленого програмування з різними конфігураціями апаратного забезпечення.
В табл.1 зверніть увагу на те, що існують конфігурації, в яких паралелізм досягається за рахунок використання декількох комп’ютерів. В такому випадку ефективніше скористатися бібліотеками PVM. І також існують конфігурації, в яких розподілене програмування може бути реалізоване лише на одному комп’ютері за рахунок розподілу логіки ПЗ на декілька процесів або потоків. Власне факт використання множини процесів або потоків говорить про те, що робота програми являє розподілений характер. Комбінації паралельного і розподіленого програмування, подані в табл.1, показують, що проблеми конфігурації , за звичай характерні розподіленому програмуванню, можуть виникнути в ситуаціях, обумовлених паралельним програмування, і, навпаки, проблеми конфігурації , за звичай пов’язані з паралельним програмуванням, можуть виникати в ситуаціях, обумовлених розподіленим програмуванням.
Таблиця 1. |
Комбінації паралельного і розподіленого програмування з різними конфігураціями апаратного забезпечення |
|
|
Один комп’ютер |
Багато комп’ютерів |
Паралельне програму- вання |
Мітить багато процесорів. Використовує логічне розділення на декілька потоків або процесів. Потоки або процеси можуть виконуватися на різних процесорах. Для координації задач необхідно МПВ- технології |
Використовує такі бібліотеки, як PVM. Потребує організації взаємодії за допомогою передачі повідомлень, що як правило характерно для розподіленого програмування. |
Розподілене програму-вання |
Наявність декількох процесорів не є обов’язковим. Логіка ПЗ може бути розділена на декілька процесів або потоків |
Реалізується за допомогою сокетів і таких компонентів, як CORBA ORB (Object Request Broker – брокер об’єктних запитів). Ми можемо використовувати тип взаємодії, який як правило пов'язаний з паралельним програмуванням |
Незалежно від конфігурації апаратних засобів, які використовуються, існує два базових механізми, що забезпечують взаємодію декількох задач: загальна пам'ять (пам’ять, що поділяється) і засоби передачі повідомлень. Для ефективного використання механізму загальної пам’яті програмісту необхідно передбачити рішення проблеми гонки даних, взаємне блокування і нескінчене відтермінування. Схема передачі повідомлень повинна передбачати виникнення таких проблеми, як повідомлення, що перериваються, спотворені повідомлення, втрата інформації, помилкові повідомлення, надто довгі повідомлення, порушення термінів повідомлення, дочасні повідомлення.
Основні архітектури ПЗ для паралельного та розподіленого програмування.
UML-діаграми для створення багатопоточних паралельних та розподілених програм.
Два види процесів.
Блок керування процесами.
Анатомія процесу.
Стани процесу.
Планування процесу, стратегії планування.
Встановлення та отримання пріоритету процесу.
Перемикання контексту.
Відношення між батьківським та дочірніми процесами.
Читання та встановлення змінних середовища.
Породження процесів.
Завершення процесу.
Ресурси процесу, типи ресурсів.
Асинхронні та синхронні процеси.
Розбиття програми на задачі.
Визначення потоку.
Контекстні вимоги до потоку.
Переваги використання потоків.
Недоліки використання потоків.
Анатомія потоку.
Атрибути потоку.
Планування потоків.
Стани потоків.