Page 30 - 4868
P. 30

Ошибка! Стиль не определен.                                                                28

               системи із збільшенням кількості процесорів використовуєтьсязакон Джина
               Амдала, який був сформульований в 1967 році. Він виявив просте по суті, але
               непереборне  за  змістом  обмеження  на  зростання  продуктивності  при
               розпаралелюванні  обчислень.  У  випадку,  коли  задача  розділяється  на
               декілька частин, сумарний час її виконання на паралельній обчислювальній
               системі не може бути меншим за час виконання самого довгого фрагмента.
               Згідно  з  даним  законом,  прискорення  виконання  програми  за  рахунок
               розпаралелювання  її  інструкцій  на  необмеженій  кількості  процесорів
               обмежена часом, необхідним для виконання її послідовних інструкцій.
                     Нехай потрібно вирішити деяку обчислювальну задачу. Припустимо, що
               алгоритм  її  рішенняпередбачає  існуваннядеякоговідсотку  підзадачp  від
               загального обсягу обчислень, які можуть бути вирішені тільки за допомогою
               послідовнихобчислень,  а,  відповідно,  відсоток  підзадач1   p   може  бути

               ідеально розпаралелений (тобто час обчислення буде обернено пропорційним
               числу задіяних процесорівn). Тоді прискорення, яке може бути отримане на
               обчислювальній  системі  з  n  процесорів,  у  порівнянні  з  однопроцесорним
               рішенням не буде перевищувати величини:
                                                               1
                                                      S              ,
                                                       n        1 p
                                                            p 
                                                                  n
               де  S –зростанняпродуктивності програми (як відношення до  її початкового
                     n
               часу роботи).
                     Якщо  послідовна  частина  програми  виконується  10%  всього  часу
               роботи,  то  її  виконання  неможливоприскорити  більш  ніж  в  10  разів,
               незалежно  від  того  скільки  процесорів  буде  дадіяно.  Це  визначає  верхню
               межу корисності від збільшення кількості обчислювальних елементів. Коли
               задача  не  може  розпаралелюватись  через  обмеження  послідовної  частини,
               прикладання  додаткових  зусиль  не  має  жодного  ефекту  для  розкладу:«щоб
               виносити дитину потрібно дев’ять місяців, незалежно від того, скільки жінок
               цим займаються».

                     4.3. Програмні підходи до розробки паралельних програм

                     Паралельне  програмування представляє додаткові джерела складності–
               необхідно  явно  керувати  роботою  тисяч  процесорів  та  координувати
               мільйони       міжпроцесорних          взаємодій.      Для     вирішення        задачі     на
               паралельномукомп’ютері,             необхідно       розподілити        обчислення        між
               процесорами  системи  так,щоб  кожен  процесор  був  зайнятий  вирішенням
               частини  задачі.  Крім  того,бажано,  щоб  якомога  менший  обсяг  даних
               пересилався  між  процесорами,оскільки  часові  затрати  на  комунікацію  є
               значно більшими, ніж на проведення обчислень. Часто,виникають конфлікти
               між  ступенем  розпаралелювання  та  об’ємом  комунікацій,тобто  між  чим
               більшим  числом  процесорів  розподілена  задача,  тим  більший  обсяг  даних
               необхідно пересилати між ними.
                     Розглянемо основні моделі паралельного програмування:
   25   26   27   28   29   30   31   32   33   34   35