Page 28 - 6111
P. 28
передачі даних. Наприклад, замість відправлення повідомлення в
канал “channel 2” можна послати повідомлення процесу “process 3”.
Модель обмін повідомленнями не накладає обмежень ні на
динамічне створення процесів, ні на виконання декількох процесів
одним процесором, ні на використання різних програм для різних
процесів. Просто, формальні описи систем обміну повідомленнями
не розглядають питання, пов’язані з маніпулюванням процесами.
Однак, при реалізації таких систем доводиться приймати яке-небудь
рішення в цьому відношенні. На практиці склалося так, що
більшість систем обміну повідомленнями при запуску паралельної
програми створює фіксоване число ідентичних процесів і не
дозволяє створювати і видаляти процеси протягом роботи
програми. У таких системах кожен процес виконує ту саму
програму (параметризовану щодо ідентифікатора або процесу, або
процесора), але працює з різними даними, тому про такі системи
говорять, що вони реалізують модель програмування SPMD (single
program multiple data - одна програма багато даних). SPMD модель
прийнятна і досить зручна для широкого діапазону додатків
паралельного програмування, але вона ускладнює розробку деяких
типів паралельних алгоритмів.
Модель паралелізм даних
У цій моделі єдина програма задає розподіл даних між усіма
процесорами комп’ютера й операції над ними. Даними, які
розподіляються, звичайно є масиви. Як правило, мови
програмування, що підтримують дану модель, допускають операції
над масивами, дозволяють використовувати у вираженнях цілі
масиви, частини масивів. Розпаралелювання операцій над
масивами, циклів обробки масивів дозволяє збільшити
продуктивність програми. Компілятор відповідає за генерацію коду,
що здійснює розподіл елементів масивів і обчислень між
процесорами. Кожен процесор відповідає за ту підмножину
елементів масиву, що розташована в його локальній пам’яті.
Програми з паралелізмом даних можуть бути відтрансльовані і
виконані як на MIMD, так і на SIMD комп’ютерах.
Модель загальна пам’ять
У цій моделі всі процеси спільно використовують загальний
адресний простір. Процеси асинхронно звертаються до загальної
пам’яті як із запитами на читання, так із запитами на запис, що
створює проблеми при виборі моменту, коли можна буде помістити
дані в пам’ять, а коли можна буде видалити їх. Для управління
доступом до загальної пам’яті використовуються стандартні
27