Технології паралельного програмування Message Passing Interface (MPI) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Технології паралельного програмування Message Passing Interface (MPI)



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

Для ідентифікації наборів процесів вводиться поняття групи і комунікатора.

Процеси об’єднуються в групи, можуть бути вкладені групи. Усередині групи всі процеси понумеровані. З кожною групою асоційований свій комунікатор. Тому при здійсненні пересилок необхідно вказати ідентифікатор групи, усередині якої проводиться це пересилка.

Процедури МРІ:

- ініціалізації та закриття МРІ –процесів;

- реалізації комутаційних операцій типу “точка-точка”;

- реалізації колективних операцій;

- для роботи з групами процесів і комунікаторами;

- для роботи з структурами даних;

- формування топології процесів.

До базових функцій МРІ відносяться:

- ініціалізація МРІ;

- завершення МРІ;

- визначення кількості процесів в області зв’язку;

- визначення номеру процесу, який виконується;

- передача повідомлень;

- приймання повідомлень;

- функції відліку часу.

Кожна МРІ – функція характеризується способом виконання.

1. Локальна функція – виконується всередині процесу, що її викликав. Її завершення не вимагає комунікацій.

2. Нелокальна функція – для її завершення необхідно виконати МРІ – процедуру іншим процесом.

3. Глобальна функція – процедуру повинні виконати всі процеси групи. Невиконання цієї умови може привести до “зависання” задачі.

4. Блокуюча функція – повернення керування з процедури гарантує можливість повторного використання параметрів, які приймали участь у виклику. Ніякої змін в стан процесу, що викликав блокуючий запит до виходу з процедури не може відбуватися.

5. Неблокуюча функція – повернення з процедури відбувається негайно, без очікування завершення операції. Завершення неблокуючих операцій здійснюється спеціальними функціями.

 

5. Операції обміну повідомленнями

Розглянемо: режими обміну, обмін типу “точка-точка”, колективний обмін, способи реалізації моделі передачі повідомлень.

Режими обміну:

В загальному випадку є чотири режими обміну: асинхронний (стандартний), синхронний, з буферизацією, по “готовності”.

Обмін типу “точка-точка” – найпростіша форма обміну повідомленнями, в якій приймають участь тільки два процеси: джерело і адресат. Є кілька різновидностей двохточкового обміну:

- синхронний обмін – супроводжується повідомленням про завершення прийому повідомлення;

- асинхронний обмін – таким повідомленням не супроводжується;

- блокуючі прийом/передача – призупиняють виконання процесу на час приймання повідомлення. Організація блокуючого обміну повідомленнями наведена на рис.8.3;

- неблокуючі прийом/передача - виконання процесу продовжується в фоновому режимі, а програма в потрібний момент може запитати підтвердження завершення приймання повідомлення. Організація неблокуючого обміну повідомленнями наведена на рис.8.4.

Неблокуючий обмін вимагає акуратності при виконанні функцій прийому. Оскільки неблокуючий прийом завершується негайно, для системи неважливо, чи прибуло повідомлення до місця призначення чи ні. Переконатися про це можна за допомогою функції перевірки отримання повідомлення. Звичайно виклик таких функцій розміщується в циклі, який повторюється до тих пір, доки функція перевірки не поверне значення “істина” (перевірка отримання пройшла успішно). Після цього можна викликати функцію прийому повідомлення з буферу повідомлень.

Колективний обмін. В операціях використовуються не два а більше процесів. Різновидностями обміну є:

- широкосмугова передача – передача виконується від одного процесу до всіх;

- обмін з бар’єром – форма синхронізації роботи процесів, коли обмін повідомленнями проходить тільки після того, як до певної процедури звернулась певна кількість процесів;

- операції приведення – вхідними є дані кількох процесів, а результат – одне значення, яке стає доступним всі процесам, які приймали участь в обміні.

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

Способи реалізації моделі передачі повідомлень:

- створення спеціалізованої мови паралельного програмування. Приклад – мова Occam;

- розширення звичайної послідовної мови шляхом включення в неї засобів обміну повідомленнями. Приклад – мова CC++, FORTRAN M;

- використання спеціалізованих бібліотек в програмах, що написані на звичайних мовах послідовного програмування. Приклад – PVM, MPI

 



Поделиться:


Последнее изменение этой страницы: 2016-12-28; просмотров: 352; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 174.129.140.206 (0.005 с.)