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

3.1. Мрі: основні поняття та означення

Розглянемо основні поняття та означення, які є основоположними для стандарту МРІ.

Поняття паралельної програми. Під паралельною програмою в рамках МРІ розуміють множину одночасно виконуваних процесів. Процеси можуть виконуватися на різних процесорах, але на одному процесорі можуть розташовуватися і декілька процесів (в цьому випадку їх виконання здійснюється в режимі розділення часу). В граничному випадку для виконання паралельної програми може використовуватися один процесор - як правило, такий спосіб застосовується для початкової перевірки правильності паралельної програми. Кожний процес програми породжується на основі копії одного і того ж програмного коду (модель SPMP). Цей програмний код, зображуваний у вигляді виконуваної програми, повинен бути доступним в момент запуску паралельної програми на всіх використовуваних процесорах. Вихідний програмний код для виконуваної програми розроблюється на алгоритмічних мовах С чи Fortran із застосуванням тієї чи іншої реалізації бібліотеки МРІ.

Кількість процесів та чисельність використовуваних процесорів визначається в момент запуску паралельної програми засобами середовища виконання МРІ - програм і в ході обчислень не може змінюватися без застосування спеціальних, але рідко задіяних засобів динамічного породження процесів та управління ними, які з’явилися в стандарті МРІ версії 2.0. Всі процеси програми послідовно перенумеровані від ) до , де є загальна кількість процесорів. Номер процесу іменується рангом процесу.

Операції передачі даних. Основу МРІ складають операції передачі повідомлень. Серед передбачених в складі МРІ функцій розрізняють парні (point-to-point) операції між двома процесами та колективні (collective) комунікаційні дії для одночасної взаємодії декількох процесів.

Для виконання парних операцій можна використовувати різні режими передачі, серед яких: синхронний, блокуючий та ін. - повний перелік можливих режимів буде розглянутий далі. До стандарті МРІ включено більшість основних операцій передачі даних.

Поняття комунікаторів. Процеси паралельної програми об’єднуються в групи. Іншим важливим поняттям МРІ, що описує набір процесів, є поняття комунікатора. Під комунікатором в МРІ розуміють спеціально створюваний службовий об’єкт, який об’єднує в своєму складі групу процесів і ряд додаткових параметрів (контекст), використовуваних при виконанні операцій передачі даних.

Парні операції передачі даних виконуються тільки для процесів, які належать одному і тому ж комунікатору. Колективні операції застосовуються одночасно для всіх процесів одного комунікатора. Як результат, вказівка на використовуваний комунікатор є обов’язковою для операцій передачі даних в МРІ. В ході обчислень можуть створюватися нові та видалятися існуючі групи процесів та комунікатори. Один і той же процес може належати різним групам і комунікаторам. Всі наявні в паралельній програмі процеси входять до складу конструйованого за умовчанням комунікатора з ідентифікатором MPI_COMM_WORLD. У версії 2.0 стандарту з’явилася можливість створювати глобальні комунікатори (intercommunicator), які об’єднують в одну структуру пару груп за необхідності виконання колективних операцій між процесами з різних груп. Детальній розгляд можливостей МРІ для роботи з групами і комунікаторами буде даний далі.

Типи даних. При виконанні операцій передачі повідомлень для вказівки даних в функціях МРІ, які передаються чи отримуються, необхідно вказувати тип даних, що пересилаються. МРІ містить великий набір базових типів даних, що багато в чому співпадають з типами даних в алгоритмічних мовах С чи Fortran. Крім того, в МРІ є можливості створення нових похідних типів даних для більш точного і короткого опису вмісту повідомлень, що пересилаються. Детальний розгляд можливостей МРІ для роботи з похідними типами даних буде виконаний далі.

Віртуальні технології. Парні операції передачі даних можна виконати між будь-якими процесами одного і того ж комунікатора, а в колективній операції приймають участь всі процеси комунікатора. Логічна топологія ліній зв’язку між процесами має структуру повного графа (незалежно від наявності реальних фізичних каналів зв’язку між процесорами). Для подальшого викладу і аналізу ряду паралельних алгоритмів доцільним є логічне представлення наявної комунікаційної мережі у вигляді тих чи інших топологій.

В МРІ є можливість представлення множини процесів у вигляді решітки довільної розмірності, рис. 2.1. Граничні процеси решіток можуть бути оголошені сусідніми, і, тим самим, на основі решіток можуть бути означені структури типу тор. Крім того, в МРІ є засоби також для формування логічних (віртуальних) топологій будь-якого потрібного типу. Детальний розгляд можливостей МРІ для роботи з топологіями буде здійснений далі. Перед початком розгляду МРІ звернемо увагу на наступні зауваження:

- опис функцій та всі приклади програм, що наводитимуться, будуть представлені на алгоритмічній мові С; особливості використання МРІ для алгоритмічної мови Fortran будуть розглянуті далі;

- коротка характеристика наявних реалізацій бібліотек МРІ та загальний опис середовища виконання МРІ - програм будуть розглянуті далі;

- основне викладення можливостей МРІ буде зорієнтовано на стандарт версії 1.2 (так званий МРІ-1), нововведення стандарту версії 2.0 будуть розглянуті далі.

Приступаючи до вивчення МРІ, можна відмітити, що МРІ є достатньо складним - в стандарті МРІ передбачається наявність більше ніж 120 функцій. З іншого боку, структура МРІ є старанно продуманою - розробка паралельних програм може бути розпочата вже після розгляду 6 функцій МРІ. Всі додаткові можливості МРІ можна засвоїти у міру зростання складності розроблюваних алгоритмів і програм. Виклад матеріалу від простого до складного буде основою подальшого викладу навчального матеріалу.