Обчислювальні парадигми

Паралельні програми, що містять велику кількість потоків команд або незалежних процесів використовують певну парадигму для структуризації їх роботи. Існує низка таких парадигм:

ü SPMD;

ü Конвеєр;

ü Фазовані обчислення;

ü «Розділяй і володарюй»;

ü Replicated worker;

SPMD (Single Program Multiple Data – одна програма, кілька потоків даних). Комп’ютерна система складається із кількох процесорів, які використовують одну і ту ж програму, але над різними наборами даних.

Конвеєр із n процесами. Дані надходять до першого процесу, який трансформує їх і передає наступному і т.д. У такий спосіб працюють конвеєри для програмної платформи UNIX.

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

При парадигмі «розділяй і володарюй» запускається один процес, який породжує інші, яким він може передати частину роботи. Кожний із процесів, в свою чергу, може доручити частину своєї роботи іншим процесам (певний аналог дій генерального підрядника).

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

Класифікація комп’ютерів паралельної дії

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

ü Класифікація паралельних архітектур за Флінном.

ü Суперскалярні та VLIW машини.

ü Класифікація Хокні.

ü Класифікація Фенга.

ü Класифікація Скіллікорна.

Найчастіше використовується класифікація за Флінном, але вона теж є наближенням.