| Назва: | Паралельні обчислювальні системи |
| Тип: | Реферати |
| Мова: | Українська |
| Розмiр: | 46,92 KB |
| Скачувань: | 63 |
• Обмін повідомленнями (message passing). Процес, що посилає, формує повідомлення з заголовком, у якому вказує, який процесор повинний прийняти повідомлення, і передає повідомлення в мережу, що з’єднує процесори. Якщо після передачі повідомлення у мережу процес, що посилає, продовжує роботу, то такий вид відправлення повідомлення називається неблокуючим (non-blocking send). Якщо ж процес, що посилає чекає, поки приймаючий процес не прийме повідомлення, то такий вид відправлення повідомлення називається блокуючим (blocking send). Приймаючий процес повинен знати, що йому необхідні дані і повинен вказати, що він готовий одержати повідомлення, виконавши відповідну команду прийому повідомлення. Якщо очікуване повідомлення ще не надійшло, то приймаючий процес припиняється доти, поки повідомлення не надійде.
• Обмін через загальну пам’ять (Transfers through shared memory). В архітектурах із загальнодоступною пам’яттю процеси зв’язуються між собою через загальну пам’ять - процес, що посилає, поміщає дані у відомі комірки пам’яті, з яких приймаючий процес може зчитувати їх. При такому обміні складність представляє процес виявлення того, коли безпечно поміщати дані, а коли видаляти їх. Найчастіше для цього використовуються стандартні методи операційної системи, такі семафори (semaphore) або блокування процесів. Однак це дорого і сильно ускладнює програмування. Деякі архітектури надають біти зайнято/вільно, зв’язані з кожним словом загальної пам’яті, що забезпечує легкий та високоефективний спосіб синхронізації відправників і приймачів.
• Прямий доступ до вилученої пам’яті (Direct remote-memory access). У перших архітектурах з розподіленою пам’яттю робота процесорів переривалася щораз, коли надходив який-небудь запит від мережі, що з’єднує процесори. У результаті процесор погано використовувався. Потім у таких архітектурах у кожному процесорному елементі стали використовувати пари процесорів - один процесор (обчислювальний), виконує програму, а іншої (процесор обробки повідомлень) обслуговує повідомлення, що надходять з мережі чи у мережу. Така організація обміну повідомленнями дозволяє розглядати обмін повідомленнями як прямий доступ до віддаленої пам’яті, до пам’яті інших процесорів. Така гібридна форма зв’язку, що застосовується в архітектурах з розподіленою пам’яттю, має багато властивостей архітектур із загальною пам’яттю.
Розглянуті механізми зв’язку необов’язково використовуються тільки безпосередньо на відповідних архітектурах. Так легко промоделювати обмін повідомленнями, використовуючи загальну пам’ять, з іншої сторони можна змоделювати загальну пам’ять, використовуючи обмін повідомленнями. Останній підхід відомий як віртуальна загальна пам’ять.
Найбільш бажаними (навіть скоріше обов’язковими) ознаками паралельних алгоритмів і програм є:
• паралелізм – вказує на здатність виконання безлічі дій одночасно, що істотно для програм, які виконуються на декількох процесорах;
• маштабованість – інша найважливіша ознака паралельної програми, що вимагає гнучкості програми стосовно зміни числа процесорів, оскільки найбільше ймовірно, що їх кількість буде постійно збільшуватися у більшості паралельних середовищ і систем;
• локальність – характеризує необхідність того, щоб доступ до локальних даних був більш частим, чим доступ до віддалених даних. Важливість цієї властивості визначається відношенням вартості віддаленого і локального звертань до пам’яті. Воно є ключовим до підвищення ефективності програм на архітектурах з розподіленою пам’яттю;
• модульність – відбиває ступінь розкладання складних об’єктів на більш прості компоненти. У паралельних обчисленнях це настільки ж важливий аспект розробки програм, як і в послідовних обчисленнях.
3.1. Процеси та співпроцеси.
У літературі пропонується багато визначень поняття процес, від формального в термінах безлічі станів обчислення до неформального поняття процесу як окремого виконання програми. Існує так само велика кількість уточнень виду процесу, режиму й умов роботи процесу: послідовний процес, паралельний процес, пакетний процес, інтерактивний процес, незалежний процес, взаємодіючий процес і т.д.
Будемо розуміти під процесом послідовність дій, що складають деяке обчислення, що характеризується:
• відповідною йому програмою/підпрограмою, тобто впорядкованою послідовністю операцій, що реалізують дії, які повинні здійснюватися процесом;
• вмістом відповідної йому пам’яті, тобто безліччю даних, якими цей процес може маніпулювати;
• дескриптором процесу, тобто сукупністю відомостей, що визначають стан ресурсів, наданих процесу.
Розрізняють, де це необхідно, повновагові і легковагові процеси.
• Обмін через загальну пам’ять (Transfers through shared memory). В архітектурах із загальнодоступною пам’яттю процеси зв’язуються між собою через загальну пам’ять - процес, що посилає, поміщає дані у відомі комірки пам’яті, з яких приймаючий процес може зчитувати їх. При такому обміні складність представляє процес виявлення того, коли безпечно поміщати дані, а коли видаляти їх. Найчастіше для цього використовуються стандартні методи операційної системи, такі семафори (semaphore) або блокування процесів. Однак це дорого і сильно ускладнює програмування. Деякі архітектури надають біти зайнято/вільно, зв’язані з кожним словом загальної пам’яті, що забезпечує легкий та високоефективний спосіб синхронізації відправників і приймачів.
• Прямий доступ до вилученої пам’яті (Direct remote-memory access). У перших архітектурах з розподіленою пам’яттю робота процесорів переривалася щораз, коли надходив який-небудь запит від мережі, що з’єднує процесори. У результаті процесор погано використовувався. Потім у таких архітектурах у кожному процесорному елементі стали використовувати пари процесорів - один процесор (обчислювальний), виконує програму, а іншої (процесор обробки повідомлень) обслуговує повідомлення, що надходять з мережі чи у мережу. Така організація обміну повідомленнями дозволяє розглядати обмін повідомленнями як прямий доступ до віддаленої пам’яті, до пам’яті інших процесорів. Така гібридна форма зв’язку, що застосовується в архітектурах з розподіленою пам’яттю, має багато властивостей архітектур із загальною пам’яттю.
Розглянуті механізми зв’язку необов’язково використовуються тільки безпосередньо на відповідних архітектурах. Так легко промоделювати обмін повідомленнями, використовуючи загальну пам’ять, з іншої сторони можна змоделювати загальну пам’ять, використовуючи обмін повідомленнями. Останній підхід відомий як віртуальна загальна пам’ять.
Найбільш бажаними (навіть скоріше обов’язковими) ознаками паралельних алгоритмів і програм є:
• паралелізм – вказує на здатність виконання безлічі дій одночасно, що істотно для програм, які виконуються на декількох процесорах;
• маштабованість – інша найважливіша ознака паралельної програми, що вимагає гнучкості програми стосовно зміни числа процесорів, оскільки найбільше ймовірно, що їх кількість буде постійно збільшуватися у більшості паралельних середовищ і систем;
• локальність – характеризує необхідність того, щоб доступ до локальних даних був більш частим, чим доступ до віддалених даних. Важливість цієї властивості визначається відношенням вартості віддаленого і локального звертань до пам’яті. Воно є ключовим до підвищення ефективності програм на архітектурах з розподіленою пам’яттю;
• модульність – відбиває ступінь розкладання складних об’єктів на більш прості компоненти. У паралельних обчисленнях це настільки ж важливий аспект розробки програм, як і в послідовних обчисленнях.
3.1. Процеси та співпроцеси.
У літературі пропонується багато визначень поняття процес, від формального в термінах безлічі станів обчислення до неформального поняття процесу як окремого виконання програми. Існує так само велика кількість уточнень виду процесу, режиму й умов роботи процесу: послідовний процес, паралельний процес, пакетний процес, інтерактивний процес, незалежний процес, взаємодіючий процес і т.д.
Будемо розуміти під процесом послідовність дій, що складають деяке обчислення, що характеризується:
• відповідною йому програмою/підпрограмою, тобто впорядкованою послідовністю операцій, що реалізують дії, які повинні здійснюватися процесом;
• вмістом відповідної йому пам’яті, тобто безліччю даних, якими цей процес може маніпулювати;
• дескриптором процесу, тобто сукупністю відомостей, що визначають стан ресурсів, наданих процесу.
Розрізняють, де це необхідно, повновагові і легковагові процеси.