Назва роботи: Багатопроцесорні системи
Предметна область: Інформатика, кібернетика та програмування
Опис: Термін також відноситься до здатності системи підтримати більше ніж один процесор і чи здатність розподілити завдання між ними. Комбінація конструктивних міркувань програмного забезпечення апаратної та операційної системи визначає симетрію або відсутність її в даній системі. Часто багатопроцесорні системи простіше проектувати якщо введені такі обмеження але вони мають тенденцію бути менш ефективними ніж системи в яких використовуються всі центральні процесори.
Розмір файлу: 31.16 KB
Роботу скачали: 54 чол.
Матеріал з Вікіпедії # 151; вільної енциклопедії
Многопроцессорность (мультипроцесорні. Многопроцессорная обробка. Англ. Multiprocessing) # 151; використання пари або більшої кількості фізичних процесорів в одній комп'ютерній системі. Термін також відноситься до здатності системи підтримати більше ніж один процесор і / або здатність розподілити завдання між ними. Існує багато варіантів даного поняття, і визначення многопроцессорности може змінюватися в залежності від контексту, головним чином в залежності від того, як визначені процесори (багато ядер в одному кристалі. Безліч чіпів в одному корпусі, безліч корпусів в одному системному модулі, і т. Д .).
Багатопроцесорних іноді називають виконання множинних паралельних програмних процесів в системі на противагу виконання одного процесу в будь-який момент часу. Однак терміни багатозадачність або мультипрограмування є більш придатними для опису цього поняття, яке здійснено головним чином в програмному забезпеченні. тоді як многопроцессорная обробка є більш відповідною, щоб описати використання множинних апаратних процесорів. Система не може бути і многопроцессорной і мультіпрограммірованной, тільки однієї з двох, або ні тієї і ні інший.
- 1 Типи
- 1.1 Процесорна симетричність
- 1.2 Потоки команд і даних
- 1.3 З'єднання процесорів
- 2 Програмні реалізації
- 2.1 Многопроцессорная обробка з SISD
- 2.2 Многопроцессорная обробка SIMD
- 2.3 Многопроцессорная обробка MISD
- 2.4 Многопроцессорная обробка MIMD
- 3 Посилання
У багатопроцесорної системі всі центральні процесори можуть бути рівними, або деякі можуть бути зарезервовані для особливих цілей. Комбінація конструктивних міркувань програмного забезпечення апаратної та операційної системи визначає симетрію (або відсутність її) в даній системі. Наприклад, апаратні або програмні міркування можуть зажадати, щоб тільки один центральний процесор відповідав на всі апаратні переривання, тоді як вся інша робота в системі може бути розподілена однаково серед процесорів; або виконання коду привілейованого режиму може бути обмежена тільки одним процесором (або певним процесором, або тільки один процесор за один раз), тоді як код непривилегированного режиму може бути виконаний на будь-якій комбінації процесорів. Часто багатопроцесорні системи простіше проектувати, якщо введені такі обмеження, але вони мають тенденцію бути менш ефективними ніж системи, в яких використовуються всі центральні процесори.
Системи, які обробляють всі центральні процесори однаково, називають системами із симетричною багатопроцесорної обробкою (SMP). В системах, де всі центральні процесори не рівні, системні ресурси можуть бути розділені багатьма способами, в тому числі асиметричною багатопроцесорної обробкою (ASMP), многопроцессорной обробкою з неоднорідним доступом до пам'яті (NUMA) і кластерізованний многопроцессорной обробкою (qq.v.).
Потоки команд і даних
У багатопроцесорної обробці процесори можуть використовуватися для виконання однієї послідовності команд у численних контекстах (єдина машинна команда. Множинні дані або SIMD. Часто використовуваний в векторної обробки), множинні послідовності команд в єдиному контексті ( «множинний потік команд, одиночний потік даних» або Архітектура MISD . використовувана для надмірності в відмовостійких системах і іноді застосовується, щоб описати конвеєрні процесори або гіперпоточность), або множинні е послідовності команд у численних контекстах ( «множинний потік команд, множинні потік даних» або MIMD).
Багатопроцесорні (багатоядерні) чіпи, включає більше одного процесора, поміщеного в однокристальну схему, і можуть вважатися граничною формою багатопроцесорної обробки з сильним зв'язком. Мейнфреймовие системи з безліччю процесорів # 151; часто є системами з сильним зв'язком.
Багатопроцесорні системи з гнучкою зв'язком (англ. Loosely-coupled multiprocessor systems), часто звані кластерами. засновані на множинних автономних одиночних або подвійних комп'ютерах, пов'язаних через високошвидкісну систему зв'язку (наприклад, Gigabit Ethernet). Кластер Беовульфа під управлінням Linux # 151; приклад гнучко пов'язаної системи.
Системи з сильним зв'язком працюють краще і фізично вони менше, ніж гнучко пов'язані системи, але історично зажадали великих початкових інвестицій і можуть швидко амортізовиваться; вузли в гнучко пов'язаної системі # 151; зазвичай недорогі комп'ютери і можуть бути використані як незалежні машини після видалення з кластера.
Системи з сильним зв'язком мають тенденцію бути набагато більше енергоефективними. ніж кластери. Значна енергоефективність досягається за рахунок того, що компоненти в таких системах заздалегідь проектуються для роботи в конкретній системі, в той час як гнучко пов'язані системи часто використовують компоненти спроектовані для роботи в більш широкому класі систем.
Многопроцессорная обробка з SISD
У комп'ютері з одиночним потоком команд і одиночним потоком даних один процесор послідовно обробляє команди; кожна машинна команда обробляє один елемент даних. приклад # 151; фон-неймановская архітектура.
Многопроцессорная обробка SIMD
У комп'ютері з одиночним потоком команд і множинним потоком даних один процесор обробляє потік команд, кожна з яких може виконати паралельні обчислення на безлічі даних.
Многопроцессорная обробка SIMD добре підходить для паралельної або векторної обробки, в якій великий набір даних може бути розділений на частини, які обробляються ідентичними, але незалежним операціями. Одиночний потік команд направляє [куди? ] Операцію модулів мультипрограммирования для виконання однотипних маніпуляцій одночасно на потенційно великій кількості даних.
Для певних типів обчислювальних додатків цей тип архітектури може дати значне збільшення продуктивності з точки зору витраченого часу. Однак, недолік цієї архітектури полягає в тому, що велика частина системи починає простоювати при виконанні програм або системних задач, які не можуть бути розділені на модулі (підзадачі), які можуть бути оброблені паралельно.
Многопроцессорная обробка SIMD знаходить широке застосування в деяких областях, таких як комп'ютерне моделювання. але малокорисна в універсальному настільному комп'ютері та бізнес-завдання.
Многопроцессорная обробка MISD
Многопроцессорная обробка з множинним потоком команд і одиночним потоком даних пропонує головним чином перевага надмірності, так як модулі мультипрограммирования виконують одні завдання на одних даних, зменшуючи можливості неправильних результатів, якщо один з модулів виходить з ладу. Архітектура MISD дозволяє порівнювати результати обчислень з метою виявлення відмов. Крім надмірності і відмовостійкості у цього типу багатопроцесорної обробки трохи переваг. До того ж він весма доріг. Він не збільшує продуктивність.
Многопроцессорная обробка MIMD
Архітектура багатопроцесорної обробки MIMD є підходящою для великої кількості різноманітних завдань, в яких реалізовано повністю незалежне і паралельне виконання команд, що стосуються різних наборів даних. З цієї причини і тому що це просто здійснити, MIMD переважає в багатопроцесорної обробці.
Обробка розділена на кілька потоків, кожен з власним апаратним станом процесора, в рамках єдиного певного програмним забезпеченням процесу або в межах множинних процесів. Оскільки система має кілька потоків, які очікують виконання (системні або призначені для користувача потоки), ця архітектура ефективно використовує апаратні ресурси.
У MIMD можуть виникнути проблеми взаємного блокування та змагання за володіння ресурсами, так як потоки, намагаючись отримати доступ до ресурсів, можуть зіткнутися непередбачуваним способом. MIMD вимагає спеціального кодування в операційній системі комп'ютера, але не вимагає змін в прикладних програмах, крім випадків коли програми самі використовують множинні потоки (MIMD прозорий для однопоточних програм під керуванням більшості операційних систем, якщо програми самі не відмовляються від управління з боку ОС). І системне і користувальницьке програмне забезпечення, можливо, повинні використовувати програмні конструкції, такі як семафори. щоб перешкоджати тому, щоб один потік втрутився в інший, в разі якщо вони містять посилання на одні й ті ж дані. Така дія збільшує складність коду, знижує продуктивність і значно збільшують кількість необхідного тестування, хоча зазвичай не настільки щоб звести нанівець переваги багатопроцесорної обробки.
Подібні конфлікти можуть виникнути на апаратному рівні між процесорами, і повинен зазвичай вирішуватися апаратними засобами, або з комбінацією програмного забезпечення і устаткування.
2 Багатопроцесорні системи
2.1 Опис багатопроцесорних систем
Потреба вирішення складних прикладних задач з великим об'ємом обчислень і принципова обмеженість максимального швидкодії «класичних» # 150; за схемою фон Неймана - ЕОМ привели до появи багатопроцесорних обчислювальних систем (МВС). Використання таких засобів обчислювальної техніки дозволяє істотно збільшувати продуктивність ЕОМ при будь-якому існуючому рівні розвитку комп'ютерного обладнання. При цьому, однак, необхідно «паралельне» узагальнення традиційної - послідовної - технології вирішення завдань на ЕОМ. Так, чисельні методи в разі МВС повинні проектуватися як системи паралельних і взаємодіючих між собою процесів, що допускають виконання на незалежних процесорах. Застосовувані алгоритмічні мови та системне програмне забезпечення повинні забезпечувати створення паралельних програм, організовувати синхронізацію і взаємовиключення асинхронних процесів і т.п.
2.2 Загальні вимоги, що пред'являються до багатопроцесорним
Для порівняння різних комп'ютерів між собою зазвичай використовуються стандартні методики вимірювання продуктивності. Ці методики дозволяють розробникам і користувачам використовувати отримані в результаті випробувань кількісні показники для оцінки тих чи інших технічних рішень, і в кінці кінців саме продуктивність і вартість дають користувачеві раціональну основу для вирішення питання, який комп'ютер вибрати.
Надійність і відмовостійкість. Найважливішою характеристикою обчислювальних систем є надійність. Підвищення надійності засноване на принципі запобігання несправностей шляхом зниження інтенсивності відмов і збоїв за рахунок застосування електронних схем і компонентів з високої і надвисокої ступенем інтеграції, зниження рівня перешкод, полегшених режимів роботи схем, забезпечення теплових режимів їх роботи, а також за рахунок вдосконалення методів збірки апаратури . Відмовостійкість - це така властивість обчислювальної системи, що забезпечує їй, як логічного машині, можливість продовження дій, заданих програмою, після виникнення несправностей. Введення відмовостійкості вимагає надлишкового апаратного і програмного забезпечення. Напрями, пов'язані із запобіганням несправностей і з отказоустойчивостью, - основні в проблемі надійності. Концепції паралельності і відмовостійкості обчислювальних систем природним чином пов'язані між собою, оскільки в обох випадках потрібні додаткові функціональні компоненти. Тому, власне, на паралельних обчислювальних системах досягається як найвища продуктивність, так і, в багатьох випадках, дуже висока надійність. Наявні ресурси надмірності в паралельних системах можуть гнучко використовуватись як для підвищення продуктивності, так і для підвищення надійності. Структура багатопроцесорних і багатомашинних систем пристосована до автоматичної реконфігурації і забезпечує можливість продовження роботи системи після виникнення несправностей. Слід пам'ятати, що поняття надійності включає не тільки апаратні засоби, а й програмне забезпечення. Головною метою підвищення надійності систем є цілісність збережених в них даних.
Масштабованість. Масштабованість є можливість нарощування числа і потужності процесорів, обсягів оперативної і зовнішньої пам'яті і інших ресурсів обчислювальної системи. Масштабованість повинна забезпечуватися архітектурою і конструкцією комп'ютера, а також відповідними засобами програмного забезпечення. Додавання кожного нового процесора в дійсно масштабованої системі повинно давати прогнозоване збільшення продуктивності і пропускної здатності при прийнятних витратах. Однією з основних завдань при побудові масштабованих систем є мінімізація вартості розширення комп'ютера і спрощення планування. В ідеалі додавання процесорів до системи повинно приводити до лінійного росту її продуктивності. Однак це не завжди так. Втрати продуктивності можуть виникати, наприклад, при недостатню пропускну спроможність шин через зростання трафіку між процесорами і основною пам'яттю, а також між пам'яттю і пристроями введення / виводу. Насправді реальне збільшення продуктивності важко оцінити заздалегідь, оскільки воно в значній мірі залежить від динаміки поведінки прикладних задач. Можливість масштабування системи визначається не тільки архітектурою апаратних засобів, але залежить від закладених властивостей програмного забезпечення. Масштабованість програмного забезпечення впливає на кожну рівні від простих механізмів передачі повідомлень до роботи з такими складними об'єктами як монітори транзакцій і все середовище прикладної системи. Зокрема, програмне забезпечення повинно мінімізувати трафік межпроцессорного обміну, який може перешкоджати лінійному зростанню продуктивності системи. Апаратні засоби (процесори, шини і пристрої введення / виводу) є тільки частиною масштабованої архітектури, на якій програмне забезпечення може забезпечити передбачене зростання продуктивності. Важливо розуміти, що простий перехід, наприклад, на більш потужний процесор може призвести до перевантаження інших компонентів системи. Це означає, що дійсно масштабована система повинна бути збалансована за всіма параметрами.
Сумісність і мобільність програмного обеспеченія.Концепція програмної сумісності вперше в широких масштабах була застосована розробниками системи IBM / 360. Основне завдання при проектуванні всього ряду моделей цієї системи полягала в створенні такої архітектури, яка була б однаковою з точки зору користувача для всіх моделей системи незалежно від ціни і продуктивності кожної з них. Величезні переваги такого підходу, що дозволяє зберігати існуючий заділ програмного забезпечення під час переходу на нові (як правило, більш продуктивні) моделі були швидко оцінені як виробниками комп'ютерів, так і користувачами і починаючи з цього часу практично всі фірми-постачальники комп'ютерного устаткування взяли на озброєння ці принципи , поставляючи серії сумісних комп'ютерів. Слід зауважити однак, що з часом навіть сама передова архітектура неминуче застаріває і виникає потреба внесення радикальних змін архітектуру і способи організації обчислювальних систем.