Мультипроцессор

Поделись знанием:
Перейти к: навигация, поиск

Мультипроцессор (от англ. multiprocessor, multiprocessing[1]) — это подкласс многопроцессорных компьютерных систем, где есть несколько процессоров и одно адресное пространство, видимое для всех процессоров. В таксономии Флинна мультипроцессоры относятся к классу 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[2], который стал на долгие годы стандартом де-факто для SMP-машин c архитектурой x86.

Примеры SMP/UMA систем в 1998 году[3]
Система Процессор Максимум процессоров
SGI Power Challenge MIPS R10000 36
DEC AlphaServer 8400 Alpha 21164 14
Sun E6000 UltraSPARC II 30
Sun E10000 UltraSPARC II 64
HP/Convex Exemplar PA-8000 16
Cray T90 Cray Vector 32

Первыми мультипроцессорами ccNUMA-типа были компьютер KSR1 компании Kendall Square Research и Denelcor HEP компании Denelcor в середине 1980-х годов.

Примеры ccNUMA систем в 1998 году[4]
Система Процессор Процессоров на узел Максимум процессоров
Data General AV-20000 Pentium 4 32
Sequent NUMA-Q 2000 Pentium 4 32
SGI Origin 2000 MIPS R10000 2 128
HP Exemplar X-Class PA-8000 16 256
HP 9000 V-Class

Были созданы также мультипроцессоры и без когерентности кэша (nccNUMA):

Примеры nccNUMA систем в 1998 году[5]
Система Процессор Процессоров на узел Максимум процессоров
Cray T3E Alpha 21164 2 2048
BBN TC-2000 Motorola MC88100 1 256
BBN TC-2000 Motorola 604 2 512

Развитие миниатюризации в вычислительной электронике позволило размещать несколько процессоров в одном корпусе или на одном кристале (англ. 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. (англ.)
  • [books.google.ru/books?id=jv6AckoevagC&pg=PA610&dq=%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80 Современные операционные системы] (пер. с англ.), Эндрю С. Таненбаум. Глава 8.1 Мультипроцессоры ([www.cs.vu.nl/~ast/books/mos2/sample-8.pdf англ.])

Примечания

  1. "1930–35; multi- + process + -ing 1" — Dictionary.com Unabridged: "[dictionary.reference.com/browse/multiprocessor multiprocessor]"
  2. [www.intel.com/design/archives/processors/pro/docs/242016.htm MultiProcessor Specification]
  3. Severance_Dowd, 1998, p. 260.
  4. Severance_Dowd, 1998, p. 263.
  5. Severance_Dowd, 1998, p. 264.

Ссылки

  • [www.britannica.com/EBchecked/topic/397249/multiprocessing multiprocessing] - Encyclopædia Britannica, Inc.


К:Википедия:Статьи без источников (тип: не указан)

Отрывок, характеризующий Мультипроцессор

– Адъютант! Господин адъютант!… Ради Бога… защитите… Что ж это будет?… Я лекарская жена 7 го егерского… не пускают; мы отстали, своих потеряли…
– В лепешку расшибу, заворачивай! – кричал озлобленный офицер на солдата, – заворачивай назад со шлюхой своею.
– Господин адъютант, защитите. Что ж это? – кричала лекарша.
– Извольте пропустить эту повозку. Разве вы не видите, что это женщина? – сказал князь Андрей, подъезжая к офицеру.
Офицер взглянул на него и, не отвечая, поворотился опять к солдату: – Я те объеду… Назад!…
– Пропустите, я вам говорю, – опять повторил, поджимая губы, князь Андрей.
– А ты кто такой? – вдруг с пьяным бешенством обратился к нему офицер. – Ты кто такой? Ты (он особенно упирал на ты ) начальник, что ль? Здесь я начальник, а не ты. Ты, назад, – повторил он, – в лепешку расшибу.
Это выражение, видимо, понравилось офицеру.
– Важно отбрил адъютантика, – послышался голос сзади.
Князь Андрей видел, что офицер находился в том пьяном припадке беспричинного бешенства, в котором люди не помнят, что говорят. Он видел, что его заступничество за лекарскую жену в кибиточке исполнено того, чего он боялся больше всего в мире, того, что называется ridicule [смешное], но инстинкт его говорил другое. Не успел офицер договорить последних слов, как князь Андрей с изуродованным от бешенства лицом подъехал к нему и поднял нагайку:
– Из воль те про пус тить!
Офицер махнул рукой и торопливо отъехал прочь.
– Всё от этих, от штабных, беспорядок весь, – проворчал он. – Делайте ж, как знаете.
Князь Андрей торопливо, не поднимая глаз, отъехал от лекарской жены, называвшей его спасителем, и, с отвращением вспоминая мельчайшие подробности этой унизи тельной сцены, поскакал дальше к той деревне, где, как ему сказали, находился главнокомандующий.
Въехав в деревню, он слез с лошади и пошел к первому дому с намерением отдохнуть хоть на минуту, съесть что нибудь и привесть в ясность все эти оскорбительные, мучившие его мысли. «Это толпа мерзавцев, а не войско», думал он, подходя к окну первого дома, когда знакомый ему голос назвал его по имени.
Он оглянулся. Из маленького окна высовывалось красивое лицо Несвицкого. Несвицкий, пережевывая что то сочным ртом и махая руками, звал его к себе.
– Болконский, Болконский! Не слышишь, что ли? Иди скорее, – кричал он.
Войдя в дом, князь Андрей увидал Несвицкого и еще другого адъютанта, закусывавших что то. Они поспешно обратились к Болконскому с вопросом, не знает ли он чего нового. На их столь знакомых ему лицах князь Андрей прочел выражение тревоги и беспокойства. Выражение это особенно заметно было на всегда смеющемся лице Несвицкого.
– Где главнокомандующий? – спросил Болконский.
– Здесь, в том доме, – отвечал адъютант.
– Ну, что ж, правда, что мир и капитуляция? – спрашивал Несвицкий.
– Я у вас спрашиваю. Я ничего не знаю, кроме того, что я насилу добрался до вас.
– А у нас, брат, что! Ужас! Винюсь, брат, над Маком смеялись, а самим еще хуже приходится, – сказал Несвицкий. – Да садись же, поешь чего нибудь.
– Теперь, князь, ни повозок, ничего не найдете, и ваш Петр Бог его знает где, – сказал другой адъютант.
– Где ж главная квартира?
– В Цнайме ночуем.
– А я так перевьючил себе всё, что мне нужно, на двух лошадей, – сказал Несвицкий, – и вьюки отличные мне сделали. Хоть через Богемские горы удирать. Плохо, брат. Да что ты, верно нездоров, что так вздрагиваешь? – спросил Несвицкий, заметив, как князя Андрея дернуло, будто от прикосновения к лейденской банке.
– Ничего, – отвечал князь Андрей.
Он вспомнил в эту минуту о недавнем столкновении с лекарскою женой и фурштатским офицером.
– Что главнокомандующий здесь делает? – спросил он.
– Ничего не понимаю, – сказал Несвицкий.
– Я одно понимаю, что всё мерзко, мерзко и мерзко, – сказал князь Андрей и пошел в дом, где стоял главнокомандующий.
Пройдя мимо экипажа Кутузова, верховых замученных лошадей свиты и казаков, громко говоривших между собою, князь Андрей вошел в сени. Сам Кутузов, как сказали князю Андрею, находился в избе с князем Багратионом и Вейротером. Вейротер был австрийский генерал, заменивший убитого Шмита. В сенях маленький Козловский сидел на корточках перед писарем. Писарь на перевернутой кадушке, заворотив обшлага мундира, поспешно писал. Лицо Козловского было измученное – он, видно, тоже не спал ночь. Он взглянул на князя Андрея и даже не кивнул ему головой.
– Вторая линия… Написал? – продолжал он, диктуя писарю, – Киевский гренадерский, Подольский…
– Не поспеешь, ваше высокоблагородие, – отвечал писарь непочтительно и сердито, оглядываясь на Козловского.
Из за двери слышен был в это время оживленно недовольный голос Кутузова, перебиваемый другим, незнакомым голосом. По звуку этих голосов, по невниманию, с которым взглянул на него Козловский, по непочтительности измученного писаря, по тому, что писарь и Козловский сидели так близко от главнокомандующего на полу около кадушки,и по тому, что казаки, державшие лошадей, смеялись громко под окном дома, – по всему этому князь Андрей чувствовал, что должно было случиться что нибудь важное и несчастливое.
Князь Андрей настоятельно обратился к Козловскому с вопросами.
– Сейчас, князь, – сказал Козловский. – Диспозиция Багратиону.
– А капитуляция?
– Никакой нет; сделаны распоряжения к сражению.
Князь Андрей направился к двери, из за которой слышны были голоса. Но в то время, как он хотел отворить дверь, голоса в комнате замолкли, дверь сама отворилась, и Кутузов, с своим орлиным носом на пухлом лице, показался на пороге.
Князь Андрей стоял прямо против Кутузова; но по выражению единственного зрячего глаза главнокомандующего видно было, что мысль и забота так сильно занимали его, что как будто застилали ему зрение. Он прямо смотрел на лицо своего адъютанта и не узнавал его.
– Ну, что, кончил? – обратился он к Козловскому.
– Сию секунду, ваше высокопревосходительство.
Багратион, невысокий, с восточным типом твердого и неподвижного лица, сухой, еще не старый человек, вышел за главнокомандующим.