Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tekhnologiyi_rozpodilenikh_sistem_ta_paralelnik...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
850.43 Кб
Скачать
  1. Два узагальнені підходи до досягнення паралельності.

Паралельне і розподілене програмування - це два базові підходи до досягнення паралельного виконання складових програмного забезпечення (ПЗ ). Вони є дві різні парадигми програмування, які іноді перетинаються. Методи, паралельного програмування дозволяють розподілити роботу програми між двома (або більше) процесорами в рамках одного фізичного або одного віртуального комп'ютера. Методи розподіленого програмування дозволяють розподілити роботу програми між двома (або більше) процесами, причому процеси можуть існувати на одному і тому ж комп'ютері або на різних. Іншими словами, частини розподіленої програми часто виконуються на різних комп'ютерах, що зв'язуються по мережі, або принаймні в різних процесах. Програма, що містить паралелізм, виконується на одному і тому ж фізичному або віртуальному комп'ютері. Таку програму можна розбити на процеси (process) або потоки (thread). В подальшому, будемо дотримуватимемося того, що розподілені програми розбиваються тільки на процеси. Багаропотоковість обмежується паралелізмом. Формально паралельні програми іноді бувають розподіленими, наприклад, при PVM-програмуванні (Parallel Virtual Machine — паралельна віртуальна машина). Розподілене програмування іноді використовується для реалізації паралелізму, як у випадку з МРI - програмуванням (Message Passing Interface— інтерфейс для передачі повідомлень). Проте не всі розподілені програми включають паралелізм. Частини розподіленої програми можуть виконуватися по різних запитах і в різні періоди часу. Наприклад, програму календаря можна розділити на дві складові. Одна частина повинна забезпечувати користувача інформацією, властивою календарю, і способом запису даних про важливі для нього зустрічі, а інша частина повинна надавати користувачу набір сигналів для різних типів зустрічей. Користувач складає розклад зустрічей, використовуючи одну частину ПЗ , тоді як інша його частина виконується незалежно від першої. Набір сигналів і компонентів розкладу разом утворюють одну програму, котра розділена на дві частини , виконувані окремо. При чистому паралелізмі одночасно виконувані частини є компонентами однієї і тієї ж програми. Частини розподілених програм звичайно реалізуються як окремі програми. Типова архітектура побудови паралельної і розподіленої програм показана на рис. 1.

Рис. 1. Типова архітектура побудови паралельної і розподіленої програм

Паралельна програма, показана на рис. 1, складається з однієї програми, розділеної на чотири завдання. Кожне завдання виконується на окремому процесорі, отже, всі вони можуть виконуватися одночасно. Ці завдання можна реалізувати в 1 і 2, розподілена програма складається з трьох окремих програм, кожна з яких виконується на окремому комп'ютері. При цьому програма 3 складається з двох окремих частин (завдання А і завдання D), що виконуються на одному комп'ютері. Не дивлячись на це, завдання А і D є розподіленими, оскільки вони реалізовані як два окремі процеси. Завдання паралельної програми тісніше зв'язані, чим завдання розподіленої програми. У загальному випадку процесори, пов'язані з розподіленими програмами знаходяться на різних комп'ютерах, тоді як процесори, пов'язані з програмами, що реалізовують паралелізм, знаходяться на одному і тому ж комп'ютері. Звичайно ж, існують гібридні програми, які є і паралельними, і розподіленими одночасно. Саме такі гібридні об'єднання стають нормою.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]