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

1 Вступ

Є багато шляхів введення в дію мультипроцессорних комп’ютерних систем, наприклад

слабо пов’язаних розподілених систем що складаються із поодиноких комп’ютерів [1,2], систем з розподіленою спільною пам’яттю [3,4,5], чи жорстко пов'язаних SMP. У деяких випадках, мультипроцесори спільно використовують багато незалежних програм. Проте людина часто зацікавлена в поліпшенні виконання (скорочення часу завершення виконання) однієї паралельної програми, що складається з ряду синхронізуючих процесів (або потоків).

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

Місткість, і отже вартість, з системи зв'язку є також загалом вище у системах, які підтримують перерозподіл процесу часу виконання. Дозвіл перерозподілу процесу часу виконання у мультипроцесорах з дуже великим рядом процесорів був би дуже важким і дорогим. Очевидний недолік заборони перерозподілу під час виконання є те, що завантаження, можливо, стає неврівноваженим, відколи деякі процесори, можливо, дуже зайняті, поки інші неактивні.

Тому немає єдиної відповіді на питання, чи перерозподіл під час виконання треба дозволяти чи ні; Це - технічне рішення, де багато чинників слід взяти до уваги.

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

Один дуже важливий чинник - заборонити чи дозволити перерозподіл під час виконання, який не принесе вигоди для продуктивності, отже зробити завантаження більше збаланснованим. Очевидно, що продуктивність системи, що не використовує перерозподіл навантаження і користується більш слабкими графіками і плануваннями буде менша . Виявлення оптимального мультипроцесора планування і алгоритмів розміщення розподілу ресурсів – ще проблема НП-комплексності [6]. Є, проте, ряд хороших евристичних методів [7,8], і, отже, можливо прийти близько або навіть дуже близько до оптимального результату для багатьох важливих випадків. Одне важливе питання, скільки виконань один отримає дозволяючи перерозподіл під час виконання за умови, що ми можемо знайти (майже) оптимальне планування і алгоритми розміщення. Є очевидно, що ця вигода залежатиме від паралелі програм, в яких ми зацікавлені. Наприклад, якщо ми маємо мультипроцесор з k процесорами, не буде ніякої вигоди для продуктивності дозволу програми перерозподілу під час виконання з 4k паралеллю обробляючими, де усі роблять ту ж кількість роботи (яку ми розмістимо чотирьох процесів на кожному процесорі і закінчуються з абсолютно балансним завантаженням). Для деяких інших програм, там буде вигода у продуктивності при дозволі перерозподілу під час виконання, навіть якщо ми користуємося кращим можливим плануванням і алгоритмами розміщення. Релевантне питання отже було б «скільки один може отримати користь у більшості дозволяючи перерозподілу під час виконання, за умови, що ми користуємося (майже) оптимальним плануванням і розміщенням».

Відповідь на це фундаментальне питання забезпечила б важливе рышення, коли ми хочемо збалансувати додаткову вартість і складність дозволу перерозподілу під час виконання проти вигоди продуктивності при дозволі перерозподіл під час виконання. У цій Статті ми визначаємо функцію, яка відповідає на це питання для дуже широкого діапазону мультипроцесорів і паралельних програм. Стаття організована наступним чином. Секція 2 мала показувати відношення попередніх результатів. Секція 3 описує визначення динамічного і статичного розподілу і відмінностей між ними. У Секціях 4 - 7 ми робимо перетворення програми, і показуємо, що перетворення дають у найгіршому випадку. Тобто, програма для якої продуктивність вигода користування SMP, у порівнянні з розподіленими системами, максимальна.

Оптимальне розміщення процесів в погано працюючих программах і головний результат статті представляються в Секції 7. Секція 8 перевіряє правильність результатів, використовуючи поширення

і багатопроцесорне технічне забезпечення, і Секція 9 обговорює деякі практичні застосування з результату. Нарешті, в Секції 10 додано наші заключення.