Page 41 - 6571
P. 41

Windows.  DirectCompute  призначений  для  виконання  обчислень
            загального призначення на графічних процесорах.


                  5.3 Принципи паралельного програмування


                  Процес  проектування  паралельних  програм  обов’язково

            включає в себе такі три основні складові як: декомпозиція, зв’язок
            та синхронізація.
                  Декомпозиція – це процес розбиття прикладної задачі на час-

            тини. Іноді декомпозиція природним чином випливає із природи
            самої задачі, іноді вона визначається розробником.
                  Розбиття задачі на підзадачі можна проводити на основі логі-
            ки дій (наприклад, сортування, пошук, введення / виведення, об-

            числення), на основі логіки ресурсів (наприклад, робота з файлом,
            принтером, базою даних), на основі логіки даних (наприклад, об-
            робка  масиву  по  рядках,  стовпчиках  або  блоках).  Чим  менший

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

            об’єднання.
                  Паралелізм  можна  організувати  і  на  рівні  команд  (рис.  5.5).
            Даний  вид  паралелізму  зазвичай  забезпечується  компілятором,

            операційною системою і внутрішньою архітектурою процесора.












                           Рисунок 5.5 – Синхронізація на рівні команд


                  Наступний  рівень  паралелізму,  що  проявляється  в  ітератив-
            них програмах – це цикл. Не усі цикли піддаються паралельному
            виконанню. Рішення про це приймає, як правило, програміст, на-

            приклад, за допомогою директив компіляції (ця технологія реалі-
            зована в OpenMP).
                  Подальше використання паралелізму проводиться на рівні пі-

            дпрограм  (функцій).  Рішення  підзадач  може  бути  оформлене  у

                                                        40
   36   37   38   39   40   41   42   43   44   45   46