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

3.2 Визначення

Ця секція описує визначення і показує відмінності між динамічним і статичним розподілом.

Ми розглядаємо паралельну програму з n процесами. Мал. 2 Показує паралельну обробку Р що складається з трьох процесів (Р1 Р2 Р3), що виконуються на двох процесорах. Тривалість виконання кожного процесу дорівнює 2. Послідовна обробка представлена процедурою обробки. Отже, Робота(x) означає послідовну обробку для одиниць x часу. Для безперебійної частини виконання процесу, який не містить ніякої синхронізації ми іноді використовуємо термін «Сегмент». Тому, сегмент довжина x представляється Роботою(x).

Процеси синхронізують з двома примітивами: Активізувати і Очікувати. Процес не блокується, коли іде виконання опції «Активізувати»; коли виконується «Очікування», процес стає блокованим до передачі сигналу «Активізувати» на виконання. Якщо передача «Активізувати» була виконанана перед тим, як процес досягне «Очікування», тоді процес виконання «Очікування» не блокується. У Мал. 2 ми бачимо цей процес Р1 не може запуститись до виконання перед тим, як Р2 активізовано (Активізують(Подію_1) в Р2

Потім Р2 очікувє сигнал від Р1 щоб запуститися. Це залежність представляється в «Очікуванні(Подія_3)» в процесі і «Активізацією(Події_3)» в процесі Р1 , іноді називають сигналом синхронізації. Отже синхронізаційний сигнал - команда в процесі, який активізує інший процес. Паралельна програма має чіткий стартовий покажчик в термінахдеякої частини коду в одному процесі, яка повинна виконуватися перед будь-яким іншим процесом що виконується. Є також чіткий кінцевий покажчик в термінах частини коду в тому ж процесі, яка повинна виконуватися врешті-решт коли інші процеси завершили своє виконання. У Мал. 2, процес Р2 - процес, що містить частину коду, яка виконується перед тим, як будь-який інший код буде виконватись, і частина коду, яка виконується, врешті-решт коли інший код був виконаний. Це дуже загальна структура в реальних паралельних програмах, де основний процес відповідальний за старт виконання і за впевненість в тому що всі процеси було виконано до того як програма завершила свою роботу.

Динамічний розподіл означає, що процес, можливо, виконується різними процесорами

впродовж періодів різного часу. Процеси, можливо, переносяться між усіма процесорами без обмежень.

Оптимальний динамічний розподіл - розміщення процесів між процесорпми, для яких час завершення паралельної програми коротший, ніж або рівний часу завершення, користуючись будь-яким іншим динамічним розподілом. Час завершення для оптимального динамічного розподілу для програми з (SMP) мультипроцесором з q процесорами означає Td(P, q). Ця кількість включає тільки виконання відколи в динаміці вартість сигналів синхронізації нульова.

У статичному розподілі процес може виконувати тільки той процесор, на якому дія була створена. У цьому докладі, що є протилежним до попередніх випадків, ми не нехтуємо часом синхронізації в статичному випадку. Ми виражаємо вартість комунікації для будь-якого синхронізаційного сигнала t. Для статичного розподілу, на час завершення впливає місце дії планування. Локальним плануванням ми виражаємо, що шлях обробки, для якого розподілено такий же процесор планується в межах власного процесора. Для певного статичного розподілу оптимальне локальне планування - локальний плануючий алгоритм розподілу ресурсів, який приводить найкоротший час завершення. Оптимальний статичний розподіл - розміщення, для якого завершення час, що користується оптимальним локальним плануванням, коротший, або дорівнює до часу завершення будь-якого іншого статичного розподілу, користуючись оптимальним локальним плануванням. Ми визначаємо час завершення з оптимальним статичним розподілом для програми Р, користуючись розподіленою системою з k комп'ютерами, і вартістю синхронізації t, Ts(P, k, t). Ця кількість включає обидва виконання і часи синхронізації. Тривалістю виконання часто буде названа час самої роботи.

Права сторона рис. 2 графічне представлення і його оптимальна динаміка (Мал. 2a; мультипроцесор з одним комп'ютерним що містить два процесори) і статичні розподіли (Мал. 2b; мультипроцесор з двома комп'ютерами, що містять один процесор кожен).

У динамічному розподілі (Мал. 2a), процеси, можуть, бути розприділено між усіма процесорами

без обмежень, наприклад процес Р3 виконується на двох процесорах. Тут вартість комунікації дорівнює нулю, тому що процеси виконуються в тому ж комп'ютері. Робочий час кожного процесу в прикладі, показаному в Наряді 2, дорівнює 2. Додаючи робочий час усіх процесів не враховуючи програмну синхронізацію, ми отримуємо повний робочий час цієї програми. Число сигналів синхронізації в програмі Р

ділиться на повний робочий час, бо програма викликається мірою деталізації програми і позначається z. У прикладі рис. 2, міра деталізації z дорівнює 5/6.