Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tekhnologiyi_rozpodilenikh_sistem_ta_paralelnik...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
850.43 Кб
Скачать

Тема 4: Засоби розробки паралельних програм.

  1. Основні підходи до розробки паралельних програм.

  2. Використання бібліотеки паралельного програмування Pthreads.

  3. Бібліотека паралельного програмування ОрепМР.

  4. Бібліотека паралельного програмування МРІ.

  5. Мови паралельного програмування.

  6. Інструментальні засоби паралельного та розподіленого програмування.

1.Основні підходи до розробки паралельних програм

До цього часу, основна увага приділялася створенню імперативних програм з явно заданими процесами, взаємодією і синхронізацією. Ці програми найбільш поширені і є тим, що виконує апаратура. Для ясності і компактності програми записувалися за допомогою нотації високого рівня. Способи опису паралельності в ній схожі на механізми мови SR, а нотація послідовних процесів аналогічна мовіС. У даному розділі розглядаються додаткові підходи і інструментальні засоби для організації високопродуктивних обчислень.

При написанні паралельних програм найчастіше береться яка-небудь послідовна мова і відповідна бібліотека підпрограм. Тіла процесів записуються на послідовній мові, наприклад, С або Фортрані. Потім за допомогою викликів бібліотечних функцій програмується створення процесів, їх взаємодія і синхронізація. Нам вже знайомі бібліотека Pthread, призначена для машин з пам'яттю, що розділяється, і бібліотека MPI для обміну повідомленнями. У розділі 1 показано, як за допомогою цих бібліотек запрограмувати метод ітерацій Якобі. Потім розглядається технологія ОреnМР — новий стандарт програмування із змінними, що розділяються. Використання ОреnМР проілюстроване також на прикладі ітерацій Якобі.

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

Третій спосіб розробки паралельних програм — використовувати мови високого рівня, в яких паралельність (вся або її частина), взаємодія і синхронізація показані неявно. У розділі 3 описано декілька класів мов високого рівня і проаналізовані основні мови з кожного класу. Для ілюстрації використання кожної з мов і їх порівняння як приклади використовуються метод ітерацій Якобі і інші програми з попередніх глав. Також описані три абстрактні моделі, які можна використовувати для характеристики часу роботи паралельних алгоритмів. Розділ закінчується учбовим прикладом по швидкодіючому Фортрану (High Performance Fortran — HPF), самому останньому в сімействі мов на основі Фортрану, призначених для наукових обчислень. Компілятори мов, подібних HPF, спираються на методи розпаралелювання і створюють програми, що містять послідовний код і бібліотечні виклики.

У розділі 4 представлені програмні інструменти, що допомагають в розробці, оцінці і використанні паралельних програм. Спочатку розглянуті інструментальні засоби для вимірювання продуктивності, візуалізації і так званого управління обчисленнями. Потім описані метаобчислення — новий підхід, що дозволяє об'єднувати обчислювальну потужність різнотипних машин, сполучених високошвидкісними мережами. Наприклад, що моделює частину наукових обчислень може виконуватися на віддаленому суперкомп'ютері, а частини, що управляють і графічна, — на локальній графічній робочій станції. Як конкретний приклад в кінцірозділу 4 описаний новий інфраструктурний набір програмних інструментів Globus для підтримкиметаобчислень.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]