Мультипроцесор (от англ. multiprocessor, multiprocessing) — це підклас багатопроцесорних комп'ютерних систем, де є декілька процесорів і один адресний простір, видимий для всіх процесорів. В таксономії Флінна мультипроцесори належать до класу SM-MIMD-машин. Мультипроцесор запускає одну копію ОС з одним набором таблиць, в том числі ті, які слідкують які сторінки пам'яті вільні.

Класифікація За ролями, які відіграють процесори в мультипроцесорній системі, розрізняють: симетричні мультипроцесори (SMP) - всі процесори грають однакову роль і мають однаковий доступ до пам'яті і периферії, і асиметричні мультипроцесори (AMP) - процесори грають різні ролі або по-різному належать до периферичних пристроїв. Технологія AMP була лише перехідною в 60-х роках до того моменту, коли була оброблена технологія SMP.

По способу адресації пам'яті розрізняютьдекілька типів мультипроцесорів, серед яких: UMA (Uniform Memory Access), NUMA (Non Uniform Memory Access) і COMA (Cache Only Memory Access).

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

Програмування В програмуванні мультипроцесорів можна використовувати дві модели програмування: багатопотоковість, де на кожному процесорі запускається потік виконання, і вони обмінюються один з одним даними через спільні зміні в спільній пам'яті, або (більш складний) message passing, коли на кожному процесорі запускається один процес, і вони обмінюються даними один з одним шляхом обміну повідомленнями. Багатопотокове програмування використовується або явно (в компеляційних мовах програмування за допомогою системних API (наприклад в C/C++ за допомогою POSIX Threads, а також за допомогою boost::thread або std::thread в C++, починаючи з стандарта C++11), в інтерпретуємих мовах (Java и C#) за допомогою конструкцій мов), або неявно (декларативно за допомогою декларативів компілятора (OpenMP) або автоматично самим компілятором (High Performance Fortran)).

Історія Мультипроцесорні машини (SMP/UMA) стали пропонуватися на ринку спочатку кінця 1980-х — на початку 1990-х років, спочатку як мінісуперкомп'ютер (наприклад, продукція компаній Alliant (англ.), Convex, Sequent, Encore (англ.) і Synapse), потім як сервера обробки даних, і швидко набрали популярність на ринку серверного оборудования. Першими мультипроцесорами з архітектурою x86 на базі процесорів Intel 80386 і Intel 486 стали сервера Compaq SystemPro, з'явившись на ринок в кінці 1989 — на початку 1990 року. Ріст пропозицій на ринку мультипроцесорних x86-серверів привела компанію Intel до створення стандарту MultiProcessor Specification, який став на довгі роки стандартом де-факто для SMP-машин з архітектурою x86. +Приклади SMP/UMA систем в 1998 роціСистемаПроцесорМаксимум процесорівSGI Power ChallengeMIPS R1000036DEC AlphaServer 8400Alpha 2116414Sun E6000UltraSPARC II30Sun E10000UltraSPARC II64HP/Convex ExemplarPA-800016Cray T90Cray Vector32 Першими мультипроцесорами ccNUMA-типу були комп'ютер KSR1 компанії Kendall Square Research і Denelcor HEP компанії Denelcor в середині 1980-х років. +Приклади ccNUMA систем в 1998 роціСистемаПроцесорПроцесорів на вузолМаксимум процесорівData General AV-20000Pentium432Sequent NUMA-Q 2000Pentium432SGI Origin 2000MIPS R100002128HP Exemplar X-ClassPA-800016256HP 9000 V-Class Були створені також мультипроцесори і без когерентності кешу (nccNUMA): +Приклади nccNUMA систем в 1998 роціСистемаПроцесорПроцесорів на вузолМаксимум процесорівCray T3EAlpha 2116422048BBN TC-2000Motorola MC881001256BBN TC-2000Motorola 6042512 Розвиток мінітюаризації в обчислювальній електроніці дозволило розміщувати декілька процесорів в одному корпусі або на одному кристалі (англ. chip-level multiprocessing, CMP), створюючи мульти-ядерні процесори. Це дозволяло підвищувати продуктивність процесорів шляхом простого збільшення кількості простих по дизайну обчислювальних ядер, замість традиційних спроб підвищення тактової частоти або ускладнення обчислювального конвеєра одноядерного процесора. При цьому багатоядерні процесори більш ефективно використовують пам'ять, працюють з багато-додатками, витрачають мало електроенергії і не розсіюють багато потужності, що идельно підходить для масштабування дата-центрів.

Починаючи приблизно з 2005 року всі процесори для споживчого ринку обчислювальної техніки випускаються в багатоядерному варіанті, тобто є по суті мініатюрними Мультіпроцесори (точніше SMP-машинами з UMA-доступом до пам'яті, з деякими застереженнями). Подальший розвиток цього напрямку призвело до появи багатоядерних мультипроцессоров - систем, де присутні кілька процесорів, а ці процесори в свою чергу містять по кілька ядер. Найбільш поширений варіант серверів в дата-центрах на 2016 рік - сервер з двома 8-ядерними процесорами класу Intel Xeon, Oracle SPARC або IBM POWER, які при цьому ще й апаратно підтримують одночасне виконання декількох потоків.

См. також Багатопроцесорність

Література Charles Severance, Kevin Dowd. High Performance Computing (RISC Architectures, Optimization & Benchmarks), 2nd Edition. — O'Reilly Media, 1998. — 466 p. — ISBN 156592312X. (англ.) Современные операционные системы (пер. с англ.), Эндрю С. Таненбаум. Глава 8.1 Мультипроцессоры (англ. )

Примітки ↑ "1930–35; multi- + process + -ing 1" — Dictionary.com Unabridged: "multiprocessor "