Пояснення незручно паралельних алгоритмів

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

Через природу незручно паралельних алгоритмів вони добре підходять для великих розподілених платформ, заснованих на Інтернеті, і не страждають від паралельного уповільнення. Протилежністю незручно паралельним проблемам є серійні проблеми, які взагалі не можна розпаралелювати.

Ідеальний випадок незручно паралельних алгоритмів можна узагальнити наступним чином:

  • Усі підзадачі або завдання визначаються перед початком обчислень.
  • Всі допоміжні рішення зберігаються в незалежних місцях пам'яті (змінні, елементи масиву).
  • Таким чином, обчислення підрозв'язків є повністю незалежним.
  • Якщо обчислення вимагають певного початкового або остаточного зв'язку, то ми називаємо це майже незручно паралельним.

Багато хто може здивуватися етимології терміна "соромно". У цьому випадку конфуз не має нічого спільного з конфузом; насправді, це означає надлишок - тут маються на увазі проблеми розпаралелювання, які "незручно легкі".

Типовим прикладом незручно паралельної проблеми є візуалізація 3D-відео, оброблена блоком обробки графіки, де кожен кадр або піксель можна обробляти без взаємозалежності. Деякі інші приклади - це програмне забезпечення для складання білків, яке може працювати на будь-якому комп’ютері, коли кожна машина виконує невелику частину роботи, генерує всі підмножини, випадкові числа та моделює Монте-Карло.