Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
переклад - відредаговано.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
5.67 Mб
Скачать

5.4 Обчислення товстої частини

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

Вирівнювання 1. Розглянемо паралельні P програми з n процесами, k комп'ютери в розподіленій системі, q процесори в SMP, і розміщенні А, де aj процеси розподілено для j комп'ютери. Отже, розміщення дає послідовність розміщення (a1, …, ak), де . Тоді:

Тут сума прийнята усі послідовності не заперечення, що зменшуються цілі числа таке, що .

6 Тонка частина

Результат цієї секції - формула для функціїr(A, n, k, t), де А- розміщення

з процесів до процесорів. Ця функція - один з двох ключових компонентів ми

треба для того, щоб отримати нашу кінцеву мету: H(n, k, q, t, z) . в Розділі 4 ми знаємо, що тонка частина програми, для якої коефіцієнт максимізував складається з послідовності синхронізацій, тобто програма R . Із розділу 5 ми знаємо, що тотожність розподіла процесів для певного процесора не впливає на тривалість виконання товстої частини. Для товстої частини ми маємо оптимальне розміщення, якщо ми уміємо поширювати процеси порівну серед процесорів. У тонкій частині ми захотіли б розподілити процеси, які часто прив'язуються до того ж процесора. Ці цілі є, оскільки ми повинні подивитися, до великої несумісної протяжності.

Нехай буде послідовністю синхронізації довжини для програми з k процесами. Значення j в цій послідовності вказує число синхронізацій між парою процесів. Оптимальний шлях обов'язкових процесів до процесорів під ці умови максимізував число синхронізацій в межах того ж процесора. Також треба знайти випадки найгіршої синхронізації.

У рис. 14 оригінальна комунікація вектора для Р3 є, (6-2) означаючи, що це там - шість синхронізація між Р3 і Р2 і двох синхронізацій між Р3 і Р2. В копії, яку ми маємо переставлено частоти комунікації Р2 і Р3 і ми отже маємо шість синхронізацій між Р2і Р3і двох синхронізацій між Р2 і Р3.

Рис 14. Копіювання де ми маємо замінену комунікацію частоти Р2 і Р3

Якщо ми конкатенуємо оригінал (який ми називаємо Р ) і копію (яку ми називаємо Q) ми отримуємо нову програму P′ таку, якTs(P′, A, k, t)≤ Ts(P, A, k, t)+ Ts(Q,A,k,t) для будь-якого розміщення А (що використовують відсутність процесу на процесор і відсутність затримок синхронізації). узагальнюючи цей аргумент ми отримаємо вид перестановки, оскільки ми мали для товстої частини (рис. 12). Ці перетворення показують, що найгірше для тонкої частини відбувається, коли усі сигнали синхронізації посилаються від усього часи n процесів - кожного разу до іншого обробника. Усі можливі сигнали синхронізації для n процесів дорівнюють і усім можливим сигналам синхронізації для процесів розподілили для процесору i дорівнює ai(ai – 1)., Тому що деякі процеси виконуються на тому ж процесорі

вартість комунікації для них дорівнює нулю. Це означає, що число синхронізації сигналів в програмі (відносно вартості комунікації) рівне Тому, оптимальний час для тонкої частини з вартістю комунікації t, і розміщенням А є: