- •Передмова
- •1. Технології побудови розподілених об’єктних систем
- •1.1. Розподілені об’єктні технології в інформаційних системах
- •1.2. Технології rmi, corba, dcom
- •1.2.1. Технологія corba
- •1.2.2. Технологія dcom
- •1.3. Переваги та недоліки використання технологій rmi, corba, dcom
- •1.4. Технологія corba
- •2. Паралельні обчислювальні системи та паралельні обчислення.
- •2.1. Побудова паралельних обчислювальних систем, аналіз і моделювання паралельних обчислень.
- •1.5. Контрольні питання
- •2.1.1. Класифікація обчислювальних систем.
- •1) Повний граф 2) Лінійка
- •3) Кільце 4) Зірка
- •2.1.2. Моделювання і аналіз паралельних обчислень
- •2.1.3. Навчальний приклад обчислення часткових сум послідовності числових значень
- •2.1.4. Оцінка максимально досяжного паралелізму
- •2.1.5. Аналіз масштабованості паралельних обчислень
- •2.2. Оцінка комунікаційної трудомісткості паралельних алгоритмів
- •2.3. Принципи розробки паралельних методів
- •2.4. Контрольні питання
- •3. Паралельне програмування на основі мрі
- •3.1. Мрі: основні поняття та означення
- •3.2. Вступ до розробки паралельних програм з використанням мрі
- •3.3. Управління групами процесів і комунікаторами.
- •3.4. Контрольні питання
- •Література
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 функцій МРІ. Всі додаткові можливості МРІ можна засвоїти у міру зростання складності розроблюваних алгоритмів і програм. Виклад матеріалу від простого до складного буде основою подальшого викладу навчального матеріалу.
