You are on page 1of 3

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ

УНІВЕРСИТЕТ ІМЕНІ ТАРАСА ШЕВЧЕНКА


Факультет комп’ютерних наук та кібернетики

Екзаменаційна робота
з дисципліни “Методи паралельних обчислень”
Екзаменаційний білет №17

Виконав студент 4-го курсу


Групи ТТП-41
Катрич Богдан Олександрович

При написанні цієї контрольної роботи я зобов'язуюсь дотримуватися правил та


принципів академічної доброчесності.

22.12.2023
Екзаменаційний білет №17
1. Парадигма паралельного програмування за керуванням
Ця парадигма фокусується на розбитті алгоритмів на окремі під задачі, які
виконуються одночасно. Вона відрізняється ширшим спектром використання
порівняно з іншими, оскільки дозволяє ефективно паралельно обробляти
навіть складні обчислювальні схеми.
Основні аспекти цієї парадигми:
Декомпозиція алгоритму: Розбиття на під задачі, які можуть бути
різноманітними та виконуватися паралельно.
Паралельне виконання: Виконання під задач на різних процесорах або ядрах
процесора.
Керування під задачами: Взаємодія та передача управління між ними через
спеціальні оператори чи механізми синхронізації.
Формула Вірта для цієї парадигми: "Паралельні програми = Паралельні
алгоритми + Структури даних", де паралельні алгоритми це обробка під
задач, а структури даних - інформація, яка використовується цими
алгоритмами.
Приклади застосування цієї парадигми включають паралельні алгоритми
сортування, обробки графів, машинного навчання та задачі штучного
інтелекту, такі як розпізнавання образів та мови.
Ефективність цієї парадигми проявляється на архітектурах типу MIMD
(Multiple Instruction, Multiple Data), що дозволяють виконувати кілька
інструкцій одночасно на різних процесорах.
Хоча ця парадигма має великий потенціал, вона вимагає складнішого
розроблення програм та синхронізації між під задачами.
2.Проблема тупиків та засоби її розв’язання.
Тупики — це ситуації, коли процес (чи програма) застрягає у певному стані і не
може продовжити виконання. Це може статися з програмами, які очікують
ресурси, отримують неправильні дані, або чекають на події, які ніколи не
відбудуться.

Існує декілька підходів до вирішення проблем тупиків:

Аналіз та відлагодження коду:


 Debugging (Відлагодження): Пошук та виправлення помилок у програмі, які
можуть призводити до тупикових ситуацій.
 Code Review (Перегляд коду): Інші члени команди або розробники
переглядають код для виявлення потенційних проблем, які можуть
призвести до тупиків.
Управління ресурсами:
 Звільнення ресурсів: Впевнення, що ресурси (пам'ять, файли, підключення
до баз даних тощо) звільняються після їх використання, щоб не блокувати
доступ до них іншим частинам програми.
 Ефективне використання ресурсів: Мінімізація блокування ресурсів на
тривалий час та зменшення можливості конфліктів.
Обробка винятків:
 Exception Handling (Обробка винятків): Надання коду здатності коректно
реагувати на виняткові ситуації, що дозволяє програмі продовжувати
роботу після того, як виникла помилка.
Моніторинг та аналіз:
 Logging (Логування): Збір інформації про роботу програми для аналізу
подій, які можуть призвести до тупиків.
 Performance Monitoring (Моніторинг продуктивності): Слідкування за
продуктивністю програми для виявлення можливих місць, де може
виникнути тупик.
Розв'язання проблем тупиків - це часто складний та ітеративний процес, який
вимагає ретельного аналізу та вдосконалення коду програми з метою уникнення
блокування чи некоректної роботи.
3. Доповнити відповідь на запитання: на якому рівні реалізується паралелізм в
мультипроцесорних системах? а) на рівні завдань, б) програм, в) ... г)
розрядів.
В. на рівні команд

You might also like