Приголомшлива паралельність
У паралельних обчисленнях, приголомшливо паралельним навантаженням (або приголомшливо паралельною задачею) називають задачу, для якої практично непотрібно докладати зусиль, щоб розділити її на декілька окремих паралельних завдань. Це часто той випадок, коли не існує залежності (або зв'язку) між цими паралельними завданнями.[1]
Приголомшливо паралельні задачі, як правило, практично не вимагають комунікації між результатами виконання завдань, і, таким чином, відрізняються від задач розподілених обчислень, які потребують зв'язку між завданнями, особливо зв'язку проміжних результатів. Вони легкі для виконання на серверних фермах (серверних кластерах), які не мають будь-якої спеціальної інфраструктури, що використовуються в справжньому суперкомп'ютерному кластері. Таким чином, вони добре підходять для великих розподілених платформ, що базуються в Інтернеті, таких як BOINC.
Типовий приклад приголомшливо паралельної задачі — робота графічного процесора (GPU) при виконанні таких завдань, як розрахунок 3D проекції, де кожен піксель на екрані може бути опрацьований самостійно.
Приклади
Деякі приклади приголомшливо паралельних задач:
- Обслуговування статичних файлів на веб-сервері.
- Множина Мандельброта та інші фрактальні розрахунки, де кожна точка може бути обчислена незалежно.
- Рендеринг в комп'ютерній графіці. У трасуванні променів, кожен піксель може бути опрацьований самостійно. У комп'ютерній анімації, кожен кадр може бути опрацьований незалежно (див. паралельний рендеринг).
- повні перебори або пошуки грубої сили, англ. brute force пошук в криптографії. Яскравим прикладом є мережа розподілених обчислень distributed.net.
- BLAST пошуки в біоінформатиці.
- Великомасштабні системи розпізнавання обличчя, що передбачають порівняння тисяч вхідних зображень (наприклад знімків облич з систем безпеки або відеоспостереження) з великою кількістю раніше збережених зображень певних осіб (наприклад, портретів злочинців).[2]
- Комп'ютерне моделювання порівняння багатьох незалежних сценаріїв, таких як кліматичні моделі.
- Генетичні алгоритми та інші еволюційні моделювання метаевристичних алгоритмів.
- Статистичний ансамбль з чисельного прогнозу погоди.
- Моделювання і реконструкція подій у фізиці елементарних частинок.
- Етап збору відношень у варіації кратних многочленів методу квадратичного решета — алгоритму факторизації цілих чисел(MPQS).
- При генеруванні електронної валюти Bitcoin, блоки з різними криптографічними нонсами (одноразовими номерами) можуть хешуватись окремо.
- Клітинні автомати
Реалізації
- У мові програмування R — пакет «сніг», англ. Snow (Simple Network of Workstations — проста мережа робочих станцій) реалізує простий механізм для використання колекції робочих станцій або кластера Beowulf для приголомшливо паралельних обчислень.
Примітки
- Designing and Building Parallel Programs, by Ian Foster. Addison-Wesley (ISBN 9780201575941), 1995. Section 1.4.4 — Проектування і будівництво паралельних програм, Ян Фостер. Розділ 1.4.4 (англ.)
- How we made our face recognizer 25 times faster (developer blog post) — Як можна зробити наш розпізнавач облич у 25 разів швидшим (англ.)
Див. також
Посилання
- Embarrassingly parallel[недоступне посилання з вересня 2019], Parallel algorithms — Паралельні алгоритми (англ.)
- Embarrassingly Parallel Computations, Engineering a Beowulf-style Compute Cluster — приголомшливо паралельні обчислення, розробка обчислювального кластеру у стилі Беовульфа. (англ.)
- , «Star-P: High Productivity Parallel Computing» — Зірка-P: Висока продуктивність паралельних обчислень" (англ.)