Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VPKS_v2_UKR_new.doc
Скачиваний:
21
Добавлен:
11.09.2019
Размер:
2.31 Mб
Скачать

2.Питання створення програмного забезпечення.

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

До звичайних проблем тут додаються нові. До них відносяться:

  • оцінка прискорення виконання програми залежно від числа процесорів;

  • величина витрат часу на синхронізацію процесів;

  • вплив розмірів програми на прискорення;

  • максимальне число процесорів, зайнятих рішенням завдання;

  • детермінізм виконання програми.

Крім того:

  • рішення про те, який розмір повинні мати «порції» паралельної програми;

  • скільки паралельних процесів повинне бути утворене;

  • який вид синхронізації процесів повинен бути обраний;

  • яким чином повинен управлятися доступ до поділюваних даних;

  • як повинні підрозділятися завдання обробки для досягнення найбільшої ефективності використання доступного паралельного устаткування.

Налагодження паралельних програм досить складне. Умови змагань можуть маскуватися під логічні помилки програми.

У ряді випадків дуже важко визначити послідовність подій, які приводять програму в тупикову ситуацію.

Взагалі ж представляється природним дозволити програмістові визначати ті частини програми, які можуть виконуватися одночасно. Однак якщо тільки програміст відповідає за коректність цієї інформації, повинна бути впевненість у тому, що він не помиляється. Із закордонної літератури відомо, що численні спроби ручної переробки звичайних послідовних програм на паралельні (наприклад, написані на Фортрані) привели до наступних виводів:

  1. Надзвичайно ризиковано перетворювати існуючу програму в програму, призначену для виконання в паралельному середовищі, тому що звичайно доводитися вносити невеликі зміни, які легко можуть привести до некоректності в цьому новому середовищі.

  2. Структури даних повинні спільно використатися процесами тільки після ретельного розгляду. Ненавмисне спільне використання даних процесами одна з основних можливостей некоректності.

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

  4. У паралельній програмі дуже невеликі частини програми, що забезпечують взаємодію процесів, здатні привести до несподіваних змін поведінки програми.

Все це говорить про те, що процес підготовки паралельних програм повинен бути автоматизований.

При такій автоматизації можлива реалізація наступних чотирьох напрямків:

  1. Розширення існуючих мов новими операторами, що дає можливість користувачеві описувати паралельні процеси і їхню синхронізацію.

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

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

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

Розглянемо коротенько ці напрямки.

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