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).
   26   27   28   29   30   31   32   33   34   35   36