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

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

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

Іншим аргументом на користь включення в систему додаткових процесорів є той факт, що алгоритми, використовувані для вирішення багатьох прикладних завдань, незрідка піддаютьсярозпаралелюванню : розділенню роботи між декількома більш менш незалежно працюючими процесорами. Залежно від алгоритму (і, побічно, від природи вирішуваного завдання) рівень досяжного паралелізму може сильно розрізнятися. Відношення продуктивності системи до кількості процесорів і продуктивності однопроцесорної машини називають коефіцієнтом масштабування. Для різних завдань, алгоритмів, ОС і апаратної архітектури цей коефіцієнт різний, але завжди менше одиниці і завжди убуває у міру збільшення кількості процесорів. Деякі завдання, наприклад, побудова фотореалістичних зображень методом трасування променів, злом шифрів повним перебором простору ключів [www.distributed.net] або пошук позаземних цивілізацій [www.seti.org] піддаються масштабуванню дуже добре: можна включити в роботу десятки і сотні тисяч процесорів, передаючи при цьому між ними відносно малі об'єми даних. У цих випадках часто виявляється Доцільно навіть не встановлювати процесори в одну машину, а використовувати безліч окремих комп'ютерів, сполучених відносно низькошвидкісними каналами передачі даних. Це дозволяє задіювати процесори, підключені до мережі (наприклад, до Інтернет) і не зайняті в даний момент іншою корисною роботою. Інші завдання, наприклад, робота з базами даних, піддаються розпаралелюванню в набагато меншій мірі, проте і в цьому випадку обробка запитів може бути розподілена між декількома паралельно працюючими процесорами. Кількість процесорів в серверах СУБД зазвичай вимірюється декількома штуками, вони підключені до обший шині, спільно використовують одну і ту ж оперативну пам'ять і зовнішні пристрої. Многопроцессорность в таких системах зазвичай застосовується лише для ц0. вышения продуктивності, але вочевидь, що її ж можна використовувати і для підвищення надійності: коли функціонують всі процесори, система працює швидко, а з частиною процесорів працює хоч щось, хай і повільніше. Деякі багатопроцесорні системи підтримують виконання на ных процесорах різних ОС — так, на IBM z90 частину процесорів M виконувати Linux, а останні — z/OS. У такій конфігурації, що працює під управлінням Linux Web-сервер може взаємодіяти з тим, що працює під z/OS сервером транзакцій через загальну фізичну пам'ять. Багатопроцесорні сервери Sun Fire можуть виконувати декілька копій Solaris. Проміжне положення між цими крайнощами займають спеціалізовані масивно-паралельні комп'ютери використовувані для таких завдань, як чисельне вирішення еліптичних диференціальних рівнянь і чисельне ж моделювання методом кінцевих елементів в геофизичних, метеорологічних і деяких інших застосуваннях. Сучасні суперкомп'ютери цього типа (IBM „SP6000, Cray Origin) складаються з десятків, сотень, а інколи і тисяч окремих процесорних модулів (кожен модуль є відносно самостійною обчислювальною системою, зазвичай багатопроцесорною, з власною пам'яттю і, незрідка, з власною дисковою підсистемою), сполучених між собою високошвидкісними каналами. Саме до цього типа відносився шаховий суперкомп'ютер Deep Blue, що виграв в 1997 році матч у чемпіона світу по шахах Гарі Каспарова [www.research.ibm.com]. Багатопроцесорні системи різного роду набувають все більш і більш широкого поширення. Якщо продуктивність окремого процесора подвоюється в середньому кожні півтора роки ("закон Мура" [www.intel.com Moore]), то продуктивність багатопроцесорних систем подвоюється десять кожного місяця[www.sun.com 2001-05]. На практиці, навіть добре алгоритми, що розпаралелюють, практично ніколи не забезпечують лінійного зростання продуктивності із зростанням числа процесорів. Це обумовлено, перш за все, витратами обчислювальних ресурсів на обмін інформацією між паралельно виконуваними потоками. На перший погляд, найпростіше здійснюється такий обмін в системах з процесорами, що мають загальну пам'ять, тобто власне багатопроцесорних комп'ютерах. Насправді, оперативна пам'ять має кінцеву, і невелику в порівнянні з циклом центрального процесора, швидкість доступу. Навіть один сучасний процесор легко може зайняти всі цикли доступу ОЗУ, а декілька процесорів непродуктивно витрачатимуть час, чекаючи доступу до пам'яті. Багатопортове ОЗУ могло б вирішити цю проблему, але така пам'ять набагато дорожче звичайною, однопортовою, і застосовується лише в особливих випадках і в невеликих об'ємах. Одне з основних рішень, що дозволяють погоджувати швидкості ЦПУ і ОЗУ, — це постачання процесорів високошвидкіснимикешами команд і даних. Такі кеші незрідка роблять не лише для центральних процесорів, але і для адаптерів шин зовнішніх пристроїв. Це значно зменшує кількість звернень до ОЗУ, проте заважає рішенню задачі, ради якої ми і об'єднували процесори в єдину систему: обміну даними між потоками, що виконуються на різних процесорах 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]