Page 31 - 4868
P. 31
29 Ошибка! Стиль не определен.
1. Процес / канал (Process/Channel).У цій моделі програми складаються з
одного або декількох процесів, розподілених по процесорах. Процеси
виконуються одночасно і їхнє числоможе змінитися протягом часу
виконання програми. Процеси обмінюютьсяданими через канали, що
являють собою односпрямовані комунікаційні лінії, які з’єднують тільки два
процеси. При цьому канали можна створювати і видаляти.
2. Обмін повідомленнями (Message Passing). У цій моделі програми
можуть бути написані на традиційній послідовніймові програмування. Кожна
програма повинна мати доступ допам’яті виконуючого її процесора. При
цьому програми обмінюються між собою даними,використовуючи для цього
підпрограми прийому / передачі даних певної комунікаційноїсистеми.
Програми, що використовують обмін повідомленнями, можутьвиконуватися
тільки на MIMD комп’ютерах.
3. Паралелізм даних(Data Parallel). У даній моделі єдина програма задає
розподіл даних між усіма процесорамикомп’ютера і операції над ними.
Даними, що розподіляються зазвичайвиступають масиви. Як правило, мови
програмування, що підтримують дану модель,допускають операції над
масивами і дозволяють використовувати у виразахцілі масиви та підмасиви.
Розпаралелювання операцій над масивамишляхом використання циклів
обробки масивів дозволяє збільшити продуктивність такої
програми.Компілятор відповідає за генерацію коду, що здійснює розподіл
елементів масивів і обчислень між процесорами. Кожний процесор
відповідає за ту підмножину елементів масиву, що розташована в його
локальній пам’яті.Програми з паралелізмом даних можуть бути
відтрансльовані та виконані як на комп’ютерах з MIMD, так і на комп’ютерах
з SIMD архітектурою.
4. Спільної пам’яті (Shared Memory). У цій моделі всі процеси спільно
використовують єдиний адреснийпростір. Процеси асинхронно звертаються
до спільної пам’яті як із запитами начитання, так і із запитами на запис, що
створює проблеми при виборі моменту розташування даних в пам’яті та
видалення їх із пам’яті. Для керування доступом до спільної пам’яті
використовуються стандартнімеханізми синхронізації –семафори і
блокування процесів.
Наведемо існуючі програмні підходи до розробки паралельних програм:
1. Бібліотеки передачі повідомлень (MPI – Message Passing Interface) –
інтерфейс передачі повідомлень в якому використовується архітектура
SPMD(Single Program Multiple Data – одна програма, багато даних) на
розподілених кластерах. Архітектура SPMD є різновидом архітектури
MIMD.SPMD-системи дозволяють виконувати деяку кількість екземплярів
однієї і тієї ж програми незалежно одни від одного, при цьому кожен
екземпляр опрацьовує різний набір даних.
2. Бібліотеки потоків (POSIX threads (Pthreads)) – стандарт POSIX
реалізації потоків виконання, який визначає API для створення та керування
потоками даних. Використовується для реалізації SPMD архітектури на
системах із спільною пам’яттю, що розподіляється (Shared-Memory System).