Багатопроцесорність (англ. Multiprocessing) — це використання двох або більше центральних процесорів (CPU) в одній комп'ютерній системі. Термін також стосується здатності системи підтримувати більше ніж однин процесор і/або здатність розділити завдання між ними. Є багато варіацій на цю основну тему, і визначення багатопроцесорності може змінюватися в залежності від контексту, в основному від того, як визначені процесори (кілька ядер на одному кристалі, множина чипів в одному корпусі, множина корпусів в одному системному модулі тощо).
Багатопроцесорністю іноді називають виконання багатьох паралельних програмних процесів в системі в протилежність виконання одного процесу в будь-який момент часу. При використанні цього визначення, багатопроцесорність іноді контрастує з багатозадачністю, яка може використовувати тільки один процесор, але включити його в тимчасових інтервалах між завданнями (тобто системи з поділом часу). Багатопроцесорність означає істинне паралельне виконання декількох процесів, що використовують більше одного процесора. Система не може бути і багатопроцесорною і , тільки однією з двох, або ні тією і ні іншою.
Типи
Процесорна симетричність
У багатопроцесорній системі всі центральні процесори можуть бути рівними, або деякі можуть бути зарезервовані для особливої мети. Комбінація конструктивних міркувань програмного забезпечення апаратної та операційної системи визначає симетрію (або відсутність її) в даній системі. Наприклад, апаратні або програмні міркування можуть вимагати, щоб тільки один центральний процесор відповідав на всі апаратні переривання, тоді як вся інша робота в системі може бути розподілена однаково серед процесорів; або виконання коду привілейованого режиму може бути обмежене тільки одним процесором (або певним процесором, або тільки один процесор за один раз), тоді як код непривілейованого режиму може бути виконаний на будь-якій комбінації процесорів. Часто багатопроцесорні системи простіше проектувати, якщо введені такі обмеження, але вони мають тенденцію бути менш ефективними ніж системи, в яких використовуються всі центральні процесори.
Системи, які однаково обробляють всі центральні процесори, називають системами з симетричною багатопроцесорною обробкою (SMP). В системах, де всі центральні процесори не рівні, системні ресурси можуть бути розподілені багатьма засобами, в тому числі асиметричною багатопроцесорною обробкою (ASMP), багатопроцесорною обробкою з неоднорідним доступом до пам'яті (NUMA) і кластеризованою багатопроцесорною обробкою (qq.v.).
Потоки команд і даних
У багатопроцесорній обробці процесори можуть використовуватися для виконання однієї послідовності команд у множинних контекстах (єдина машинна команда, множинні дані або SIMD, часто використовують в векторної обробці), множинні послідовності команд в єдиному контексті («множинний потік команд, одиночний потік даних» або Архітектура MISD, яка використовується для надмірності в відмовостійких системах і іноді застосовувана, щоб описати конвеєрні процесори або гіперпотоковість), або множинні послідовності команд у множинних контекстах («множинний потік команд, множинні потік даних» або MIMD).
З'єднання процесорів
Багатопроцесорні системи з сильним зв'язком (англ. Tightly-coupled multiprocessor systems) містять кілька процесорів, які підключені на шинному рівні. Ці процесори можуть мати доступ до центральної розділюючої пам'яті (SMP або UMA), або можуть брати участь в ієрархії пам'яті і з локальної та з пам'яттю (NUMA). Ці процесори можуть мати доступ до центральної розділюючої пам'яті (SMP або UMA), або можуть брати участь в ієрархії пам'яті і з локальної та із розділюючою пам'яттю (NUMA). IBM p690 Regatta є прикладом потужної системи SMP. Процесори Intel Xeon домінували над багатопроцесорним ринком для ділових PC і були єдиною x86-опцією до випуску лінійки процесорів AMD Opteron в 2004 році. Обидві лінійки процесорів мали свій власний вбудований кеш, але по різному забезпечують доступ до розділюючої пам'яті: процесори Xeon через загальний канал, а процесори Opteron через незалежні магістралі до системної оперативної пам'яті.
Багатопроцесорні (багатоядерні) чипи, включають більше одного процесора, розташованого в однокристальній схемі, і можуть вважатися граничною формою багатопроцесорної обробки з сильним зв'язком. Мейнфреймові системи з безліччю процесорів — часто є системами з сильним зв'язком.
Багатопроцесорні системи з гнучким зв'язком (англ. Loosely-coupled multiprocessor systems), або так звані кластери, засновані на множинних автономних одиночних або подвійних комп'ютерах, пов'язаних через високошвидкісну систему зв'язку (наприклад, Gigabit Ethernet). Кластер Беовульфа під управлінням Linux — приклад гнучко пов'язаної системи.
Системи з сильним зв'язком працюють краще і фізично вони менші, ніж гнучко пов'язані системи, але історично потребували великих початкових інвестицій і можуть швидко амортизуватись; вузли в гнучко пов'язаної системі — зазвичай недорогі комп'ютери і можуть бути використані як незалежні машини після видалення з кластера.
Системи з сильним зв'язком мають тенденцію бути набагато більше енергоефективними, ніж кластери. Значна енергоефективність досягається за рахунок того, що компоненти в таких системах заздалегідь проектуються для роботи в конкретній системі, тоді як гнучко пов'язані системи найчастіше використовують компоненти спроектовані для роботи в більш широкому класі систем.
Програмні реалізації
Одна інструкція | Багато інструкцій | Одна програма | Багато програм | |
---|---|---|---|---|
Одні дані | SISD | MISD | ||
Багато даних | SIMD | MIMD | SPMD | MPMD |
Багатопроцесорна обробка з SISD
У комп'ютері з одиночним потоком команд і одинарним потоком даних один процесор послідовно обробляє команди; кожна машинна команда обробляє один елемент даних. Приклад — Фон-нейманівська архітектура.
Багатопроцесорна обробка SIMD
У комп'ютері з одинарним потоком команд і множинним потоком даних один процесор обробляє потік команд, кожна з яких може виконати паралельні обчислення на безлічі даних.
Багатопроцесорна обробка SIMD добре підходить для паралельної або векторної обробки, в якій великий набір даних може бути розділений на частини, які обробляються ідентичними, але незалежним операціями. Одинарний потік команд направляє операцію модулів мультипрограмування для виконання однотипних маніпуляцій одночасно на потенційно великій кількості даних.
Для певних типів обчислювальних застосувань цей тип архітектури може дати значне зростання продуктивності з точки зору витраченого часу. Однак, недолік цієї архітектури полягає в тому, що більша частина системи починає простоювати при виконанні програм або системних завдань, які не можуть бути розділені на модулі (підзадачі), які можуть бути оброблені паралельно.
Крім того, програми мають бути ретельно і спеціально написані, щоб мати можливість максимально використати можливості архітектури. Часто застосовуються спеціальні оптимізувальні компілятори, спроектовані так, щоб створити код спеціально для використання в цьому середовищі. Деякі компілятори в цій категорії забезпечують спеціальні конструкції або розширення, щоб дозволити програмістам безпосередньо визначати операції, які будуть виконані паралельно (наприклад, оператори DO FOR ALL у Фортрані, використовуваного на ILLIAC IV, який був багатопроцесорним суперкомп'ютером з SIMD-архітектурою).
Багатопроцесорна обробка SIMD широко застосовується в деяких галузях, таких як комп'ютерне моделювання, але малокорисна в універсальному настільному комп'ютері та бізнес-завданнях.
Багатопроцесорна обробка MISD
Багатопроцесорна обробка з множинним потоком команд і одинарним потоком даних пропонує головним чином перевагу надмірності, так як модулі мультипрограмування виконують одні завдання на одних даних, зменшуючи можливості неправильних результатів, якщо один з модулів виходить з ладу. Архітектура MISD дозволяє порівнювати результати обчислень з метою виявлення відмов. Крім надмірності та відмовостійкості у цього типу багатопроцесорної обробки небагато переваг. До того ж він надзвичайно дорогий. Він не збільшує продуктивність.
Багатопроцесорна обробка MIMD
Архітектура багатопроцесорної обробки MIMD є відповідною для великої кількості різноманітних завдань, в яких реалізовано повністю незалежне і паралельне виконання команд, що стосуються різних наборів даних. З цієї причини і тому що це просто здійснити, MIMD переважає над багатопроцесорною обробкою.
Обробка розділена на кілька потоків, кожен з власним , в рамках єдиного певного програмним забезпеченням процесу або в межах множинних процесів. Оскільки система має кілька потоків, які очікують виконання (системні або користувацькі потоки), ця архітектура ефективно використовує апаратні ресурси.
У MIMD можуть виникнути проблеми взаємного блокування та змагання за володіння ресурсами, так як потоки, намагаючись отримати доступ до ресурсів, можуть зіткнутися непередбачуваним засобом. MIMD вимагає спеціального кодування в операційній системі комп'ютера, але не вимагає змін в прикладних програмах, окрім випадків коли програми самі використовують множинні потоки (MIMD прозорий для однопотокових програм під керуванням більшості операційних систем, якщо програми самі не відмовляються від управління з боку ОС). І системне і користувацьке програмне забезпечення, можливо, повинні використовувати програмні конструкції, такі як семафори, щоб перешкоджати тому, щоб один потік втручався в інший, у разі якщо вони містять посилання на одні й ті самі дані. Така дія збільшує складність коду, знижує продуктивність і значно збільшують кількість необхідного тестування, хоча, зазвичай, не настільки, щоб звести нанівець переваги багатопроцесорної обробки. Схожі конфлікти можуть виникнути на апаратному рівні між процесорами, і повинен зазвичай вирішуватися апаратними засобами, або з комбінацією програмного забезпечення і устаткування.
Див. також
Примітки
Посилання
- Теорія операційної системи [ 16 лютого 2020 у Wayback Machine.]
Це незавершена стаття з інформатики. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття не містить . (липень 2018) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Bagatoprocesornist angl Multiprocessing ce vikoristannya dvoh abo bilshe centralnih procesoriv CPU v odnij komp yuternij sistemi Termin takozh stosuyetsya zdatnosti sistemi pidtrimuvati bilshe nizh odnin procesor i abo zdatnist rozdiliti zavdannya mizh nimi Ye bagato variacij na cyu osnovnu temu i viznachennya bagatoprocesornosti mozhe zminyuvatisya v zalezhnosti vid kontekstu v osnovnomu vid togo yak viznacheni procesori kilka yader na odnomu kristali mnozhina chipiv v odnomu korpusi mnozhina korpusiv v odnomu sistemnomu moduli tosho Bagatoprocesornistyu inodi nazivayut vikonannya bagatoh paralelnih programnih procesiv v sistemi v protilezhnist vikonannya odnogo procesu v bud yakij moment chasu Pri vikoristanni cogo viznachennya bagatoprocesornist inodi kontrastuye z bagatozadachnistyu yaka mozhe vikoristovuvati tilki odin procesor ale vklyuchiti jogo v timchasovih intervalah mizh zavdannyami tobto sistemi z podilom chasu Bagatoprocesornist oznachaye istinne paralelne vikonannya dekilkoh procesiv sho vikoristovuyut bilshe odnogo procesora Sistema ne mozhe buti i bagatoprocesornoyu i tilki odniyeyu z dvoh abo ni tiyeyu i ni inshoyu TipiProcesorna simetrichnist U bagatoprocesornij sistemi vsi centralni procesori mozhut buti rivnimi abo deyaki mozhut buti zarezervovani dlya osoblivoyi meti Kombinaciya konstruktivnih mirkuvan programnogo zabezpechennya aparatnoyi ta operacijnoyi sistemi viznachaye simetriyu abo vidsutnist yiyi v danij sistemi Napriklad aparatni abo programni mirkuvannya mozhut vimagati shob tilki odin centralnij procesor vidpovidav na vsi aparatni pererivannya todi yak vsya insha robota v sistemi mozhe buti rozpodilena odnakovo sered procesoriv abo vikonannya kodu privilejovanogo rezhimu mozhe buti obmezhene tilki odnim procesorom abo pevnim procesorom abo tilki odin procesor za odin raz todi yak kod neprivilejovanogo rezhimu mozhe buti vikonanij na bud yakij kombinaciyi procesoriv Chasto bagatoprocesorni sistemi prostishe proektuvati yaksho vvedeni taki obmezhennya ale voni mayut tendenciyu buti mensh efektivnimi nizh sistemi v yakih vikoristovuyutsya vsi centralni procesori Sistemi yaki odnakovo obroblyayut vsi centralni procesori nazivayut sistemami z simetrichnoyu bagatoprocesornoyu obrobkoyu SMP V sistemah de vsi centralni procesori ne rivni sistemni resursi mozhut buti rozpodileni bagatma zasobami v tomu chisli asimetrichnoyu bagatoprocesornoyu obrobkoyu ASMP bagatoprocesornoyu obrobkoyu z neodnoridnim dostupom do pam yati NUMA i klasterizovanoyu bagatoprocesornoyu obrobkoyu qq v Potoki komand i danih U bagatoprocesornij obrobci procesori mozhut vikoristovuvatisya dlya vikonannya odniyeyi poslidovnosti komand u mnozhinnih kontekstah yedina mashinna komanda mnozhinni dani abo SIMD chasto vikoristovuyut v vektornoyi obrobci mnozhinni poslidovnosti komand v yedinomu konteksti mnozhinnij potik komand odinochnij potik danih abo Arhitektura MISD yaka vikoristovuyetsya dlya nadmirnosti v vidmovostijkih sistemah i inodi zastosovuvana shob opisati konveyerni procesori abo giperpotokovist abo mnozhinni poslidovnosti komand u mnozhinnih kontekstah mnozhinnij potik komand mnozhinni potik danih abo MIMD Z yednannya procesoriv Bagatoprocesorni sistemi z silnim zv yazkom angl Tightly coupled multiprocessor systems mistyat kilka procesoriv yaki pidklyucheni na shinnomu rivni Ci procesori mozhut mati dostup do centralnoyi rozdilyuyuchoyi pam yati SMP abo UMA abo mozhut brati uchast v iyerarhiyi pam yati i z lokalnoyi ta z pam yattyu NUMA Ci procesori mozhut mati dostup do centralnoyi rozdilyuyuchoyi pam yati SMP abo UMA abo mozhut brati uchast v iyerarhiyi pam yati i z lokalnoyi ta iz rozdilyuyuchoyu pam yattyu NUMA IBM p690 Regatta ye prikladom potuzhnoyi sistemi SMP Procesori Intel Xeon dominuvali nad bagatoprocesornim rinkom dlya dilovih PC i buli yedinoyu x86 opciyeyu do vipusku linijki procesoriv AMD Opteron v 2004 roci Obidvi linijki procesoriv mali svij vlasnij vbudovanij kesh ale po riznomu zabezpechuyut dostup do rozdilyuyuchoyi pam yati procesori Xeon cherez zagalnij kanal a procesori Opteron cherez nezalezhni magistrali do sistemnoyi operativnoyi pam yati Bagatoprocesorni bagatoyaderni chipi vklyuchayut bilshe odnogo procesora roztashovanogo v odnokristalnij shemi i mozhut vvazhatisya granichnoyu formoyu bagatoprocesornoyi obrobki z silnim zv yazkom Mejnfrejmovi sistemi z bezlichchyu procesoriv chasto ye sistemami z silnim zv yazkom Bagatoprocesorni sistemi z gnuchkim zv yazkom angl Loosely coupled multiprocessor systems abo tak zvani klasteri zasnovani na mnozhinnih avtonomnih odinochnih abo podvijnih komp yuterah pov yazanih cherez visokoshvidkisnu sistemu zv yazku napriklad Gigabit Ethernet Klaster Beovulfa pid upravlinnyam Linux priklad gnuchko pov yazanoyi sistemi Sistemi z silnim zv yazkom pracyuyut krashe i fizichno voni menshi nizh gnuchko pov yazani sistemi ale istorichno potrebuvali velikih pochatkovih investicij i mozhut shvidko amortizuvatis vuzli v gnuchko pov yazanoyi sistemi zazvichaj nedorogi komp yuteri i mozhut buti vikoristani yak nezalezhni mashini pislya vidalennya z klastera Sistemi z silnim zv yazkom mayut tendenciyu buti nabagato bilshe energoefektivnimi nizh klasteri Znachna energoefektivnist dosyagayetsya za rahunok togo sho komponenti v takih sistemah zazdalegid proektuyutsya dlya roboti v konkretnij sistemi todi yak gnuchko pov yazani sistemi najchastishe vikoristovuyut komponenti sproektovani dlya roboti v bilsh shirokomu klasi sistem Programni realizaciyiOdna instrukciya Bagato instrukcij Odna programa Bagato program Odni dani SISD MISD Bagato danih SIMD MIMD SPMD MPMD Bagatoprocesorna obrobka z SISD Dokladnishe SISD U komp yuteri z odinochnim potokom komand i odinarnim potokom danih odin procesor poslidovno obroblyaye komandi kozhna mashinna komanda obroblyaye odin element danih Priklad Fon nejmanivska arhitektura Bagatoprocesorna obrobka SIMD Dokladnishe SIMD U komp yuteri z odinarnim potokom komand i mnozhinnim potokom danih odin procesor obroblyaye potik komand kozhna z yakih mozhe vikonati paralelni obchislennya na bezlichi danih Bagatoprocesorna obrobka SIMD dobre pidhodit dlya paralelnoyi abo vektornoyi obrobki v yakij velikij nabir danih mozhe buti rozdilenij na chastini yaki obroblyayutsya identichnimi ale nezalezhnim operaciyami Odinarnij potik komand napravlyaye operaciyu moduliv multiprogramuvannya dlya vikonannya odnotipnih manipulyacij odnochasno na potencijno velikij kilkosti danih Dlya pevnih tipiv obchislyuvalnih zastosuvan cej tip arhitekturi mozhe dati znachne zrostannya produktivnosti z tochki zoru vitrachenogo chasu Odnak nedolik ciyeyi arhitekturi polyagaye v tomu sho bilsha chastina sistemi pochinaye prostoyuvati pri vikonanni program abo sistemnih zavdan yaki ne mozhut buti rozdileni na moduli pidzadachi yaki mozhut buti obrobleni paralelno Krim togo programi mayut buti retelno i specialno napisani shob mati mozhlivist maksimalno vikoristati mozhlivosti arhitekturi Chasto zastosovuyutsya specialni optimizuvalni kompilyatori sproektovani tak shob stvoriti kod specialno dlya vikoristannya v comu seredovishi Deyaki kompilyatori v cij kategoriyi zabezpechuyut specialni konstrukciyi abo rozshirennya shob dozvoliti programistam bezposeredno viznachati operaciyi yaki budut vikonani paralelno napriklad operatori DO FOR ALL u Fortrani vikoristovuvanogo na ILLIAC IV yakij buv bagatoprocesornim superkomp yuterom z SIMD arhitekturoyu Bagatoprocesorna obrobka SIMD shiroko zastosovuyetsya v deyakih galuzyah takih yak komp yuterne modelyuvannya ale malokorisna v universalnomu nastilnomu komp yuteri ta biznes zavdannyah Bagatoprocesorna obrobka MISD Dokladnishe MISD Bagatoprocesorna obrobka z mnozhinnim potokom komand i odinarnim potokom danih proponuye golovnim chinom perevagu nadmirnosti tak yak moduli multiprogramuvannya vikonuyut odni zavdannya na odnih danih zmenshuyuchi mozhlivosti nepravilnih rezultativ yaksho odin z moduliv vihodit z ladu Arhitektura MISD dozvolyaye porivnyuvati rezultati obchislen z metoyu viyavlennya vidmov Krim nadmirnosti ta vidmovostijkosti u cogo tipu bagatoprocesornoyi obrobki nebagato perevag Do togo zh vin nadzvichajno dorogij Vin ne zbilshuye produktivnist Bagatoprocesorna obrobka MIMD Dokladnishe MIMD Arhitektura bagatoprocesornoyi obrobki MIMD ye vidpovidnoyu dlya velikoyi kilkosti riznomanitnih zavdan v yakih realizovano povnistyu nezalezhne i paralelne vikonannya komand sho stosuyutsya riznih naboriv danih Z ciyeyi prichini i tomu sho ce prosto zdijsniti MIMD perevazhaye nad bagatoprocesornoyu obrobkoyu Obrobka rozdilena na kilka potokiv kozhen z vlasnim v ramkah yedinogo pevnogo programnim zabezpechennyam procesu abo v mezhah mnozhinnih procesiv Oskilki sistema maye kilka potokiv yaki ochikuyut vikonannya sistemni abo koristuvacki potoki cya arhitektura efektivno vikoristovuye aparatni resursi U MIMD mozhut viniknuti problemi vzayemnogo blokuvannya ta zmagannya za volodinnya resursami tak yak potoki namagayuchis otrimati dostup do resursiv mozhut zitknutisya neperedbachuvanim zasobom MIMD vimagaye specialnogo koduvannya v operacijnij sistemi komp yutera ale ne vimagaye zmin v prikladnih programah okrim vipadkiv koli programi sami vikoristovuyut mnozhinni potoki MIMD prozorij dlya odnopotokovih program pid keruvannyam bilshosti operacijnih sistem yaksho programi sami ne vidmovlyayutsya vid upravlinnya z boku OS I sistemne i koristuvacke programne zabezpechennya mozhlivo povinni vikoristovuvati programni konstrukciyi taki yak semafori shob pereshkodzhati tomu shob odin potik vtruchavsya v inshij u razi yaksho voni mistyat posilannya na odni j ti sami dani Taka diya zbilshuye skladnist kodu znizhuye produktivnist i znachno zbilshuyut kilkist neobhidnogo testuvannya hocha zazvichaj ne nastilki shob zvesti nanivec perevagi bagatoprocesornoyi obrobki Shozhi konflikti mozhut viniknuti na aparatnomu rivni mizh procesorami i povinen zazvichaj virishuvatisya aparatnimi zasobami abo z kombinaciyeyu programnogo zabezpechennya i ustatkuvannya Div takozhBagatoyadernij procesor Bagatopotokovist bagatonitkovist Bagatozadachnist Procesornij chas Spilna pam yat Klasifikaciya paralelnih komp yuternih sistemPrimitkiPosilannyaTeoriya operacijnoyi sistemi 16 lyutogo 2020 u Wayback Machine Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno lipen 2018