Паралелізм даних
Основна ідея підходу – застосування однієї операції до кількох елементів масиву даних
(векторна і паралельна обробка)
Основні особливості підходу
обробкою даних керує одна програма.
простір є глобальним (для програміста є одна єдина пам’ять а адеталі структури даних доступу до пам’яті і міжпроцесорного обміну для програміста скриті.
слаба синхронізація обчислень на II процесорах.
I I операції над елементами масиву виконується на всіх допустимих даній програмі процесорах.
Програмування в моделі паралелізму даних спеціалізовані мови (різновидності FORTRAN)
Програміст – слабо впливає на
Найрозповсюдженішим підходом до розпаралелиння обчислень і обробки даних є підходом, що базується на моделях паралелізму даних і паралелізму задач.
В основі кожного підходу лежить розповсюдження обчислювальної роблти між доступними користувачу процесорами паралельного комп’ютера.
Проблеми:
1). Забезпечення рівномірного завантаження поцесорів.
2). Ефективна організація обміну інформації між процесорами.
Підхід базується на використанні в
Базовою роботою операцій:
операції керування даними.
опнрації над масивами та їх фрагментами.
умовні операції.
операції
операції зсуву.
операції сканування.
операції пересилання даних.
Паралелізм задач

Метод передбачає розбитття задачі на кілька відносно самотійних задач.
(MIMD структура) – Для кожного процесора своя програма (FORTRAN чи С підхід трудоємкісний між паралелізмом даних).
Проблеми:
підвищена трудоємність розробки і відлагодження програм.
на – програміста – вся відповідальність за збалансоване завантаження програм.
програмісту необхідно мінімізувати обмін дними між процесорами.
підвищена небезпека виникнення тупикових ситуацй.
Гнучкість і свобода програміту
Спеціалізовані б-ки:

MPI (Message Passing Interface)
PVM (Parallel Virtual Machines)
Програміст контролює розподіл даних між різними процесорами і різними підзадачами, а також обмін даними.
Розробка паралельного алгоритму.
Алгоритм повинен забезпечити ефективність використати ІІ обчислювальні системи.
Необхідно піклуватись про масштабованість алгоритму (але це не просто).

Декомпозиція: Аналіз задачі, можливості її розпаралелиння.(Етап може бути і останній). Особливості архітектури конкретної обчислювальної системи на даному етапі не враховуються.
Проектування комунікацій: Визначаються комунікації, необхідні для пересилання вихідних даних, проміжних результатів виконання підзадач.(Вибирається алгоритм і методи комунікації.)
Укрупнення: Підзадачі об’днуються в крупніші блоки, якщо це позволить підвищити ефективність алгоритму і знизити трудоємність розробки.
Критерії: Ефективність алгоритму (продуктивність), і трудоємніть його реалізації.
Планування обчислень: Розподілення підзадач між процесорами.
Критерії вибору способу розміщення задач – ефективне використання процесорів з мінімальними затратами на обмін даними.
Декомпозиція.
Визначається ступінь можливого розпаралелиння задачі (менші розміри – краще).
Сегментуватися можуть як алгоритм так і дані.
Різні варіанти декомпозиції
В декомпозиціїданих спочатку сегментується дані, а потім алгоритм іх обробки.
Дані – розбиваються на фрагменти приблизно однакового розміру.
З даних і алгоритму обробки формується підзадача:
Визначаються необхідні пересилки даних: пересічення частин на які розбивається задача повинні бути зведені до мінімуму(не дублюються)
Спочатку Аналізуються структури даних найбільшого розміру або до яких частіше звертання.
Наприклад: Для сіткових методів.
Однорідне(найкрупніше розбиття)
Декомпозиція

Двохвимірни

Тьохвимірне