Многопроцессорность

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

Многопроцессорность (мультипроцессорность, многопроцессорная обработка, англ. multiprocessing) — использование в составе одного устройства двух или более физических процессоров.

Операционная система или программа называется многопроцессорной, если способна распределять задачи между процессорами (см. многопоточность).

Существует много вариантов данного понятия, и определение многопроцессорности может меняться в зависимости от контекста, главным образом в зависимости от того, как определены процессоры (много ядер в одном кристалле, множество чипов в одном корпусе, множество корпусов в одном системном модуле и так далее).

Многопроцессорностью иногда называют выполнение множественных параллельных программных процессов в системе в противоположность выполнению одного процесса в любой момент времени. Однако термины многозадачность или мультипрограммирование являются более подходящими для описания этого понятия, которое осуществлено главным образом в программном обеспечении, тогда как многопроцессорная обработка является более соответствующей, чтобы описать использование множественных аппаратных процессоров. Система не может быть и многопроцессорной и мультипрограммированной, только одной из двух, или ни той и ни другой.





Типы

Процессорная симметричность

В многопроцессорной системе все центральные процессоры могут быть равными, или некоторые могут быть зарезервированы для особых целей. Комбинация конструктивных соображений программного обеспечения аппаратной и операционной системы определяет симметрию (или отсутствие её) в данной системе. Например, аппаратные или программные соображения могут потребовать, чтобы только один центральный процессор отвечал на все аппаратные прерывания, тогда как вся другая работа в системе может быть распределена одинаково среди процессоров; или выполнение кода привилегированного режима может быть ограничено только одним процессором (или определенным процессором, или только один процессор за один раз), тогда как код непривилегированного режима может быть выполнен на любой комбинации процессоров. Часто многопроцессорные системы проще проектировать, если введены такие ограничения, но они имеют тенденцию быть менее эффективными чем системы, в которых используются все центральные процессоры.

Системы, которые обрабатывают все центральные процессоры одинаково, называют системами с симметричной многопроцессорной обработкой (SMP). В системах, где все центральные процессоры не равны, системные ресурсы могут быть разделены многими способами, в том числе асимметричной многопроцессорной обработкой (ASMP), многопроцессорной обработкой с неоднородным доступом к памяти (NUMA) и кластеризованной многопроцессорной обработкой (qq.v.).

Потоки команд и данных

В многопроцессорной обработке процессоры могут использоваться для выполнения одной последовательности команд во множественных контекстах (единственная машинная команда, множественные данные или SIMD, часто используемый в векторной обработке), множественные последовательности команд в единственном контексте («множественный поток команд, одиночный поток данных» или Архитектура MISD, используемая для избыточности в отказоустойчивых системах и иногда применяемая, чтобы описать конвейерные процессоры или гиперпоточность), или множественные последовательности команд во множественных контекстах («множественный поток команд, множественные поток данных» или MIMD).

Соединения процессоров

Многопроцессорные системы с сильной связью (англ. Tightly-coupled multiprocessor systems) содержат несколько процессоров, которые подключены на шинном уровне. Эти процессоры могут иметь доступ к центральной разделяемой памяти (SMP или UMA), или могут участвовать в иерархии памяти и с локальной и с разделяемой памятью (NUMA). IBM p690 Regatta является примером мощной системы SMP. Процессоры Intel Xeon доминировали над многопроцессорным рынком для деловых PC и были единственной x86-опцией до выпуска линейки процессоров AMD Opteron в 2004 году. Обе линейки процессоров имели свой собственный встроенный кэш, но по разному обеспечивают доступ к разделяемой памяти: процессоры Xeon через общий канал, а процессоры Opteron через независимые магистрали к системной оперативной памяти.

Многопроцессорные (многоядерные) чипы, включает больше одного процессора, помещённого в однокристальную схему, и могут считаться самой предельной формой многопроцессорной обработки с сильной связью. Мэйнфреймовые системы со множеством процессоров — часто являются системами с сильной связью.

Многопроцессорные системы с гибкой связью (англ. Loosely-coupled multiprocessor systems), часто называемые кластерами, основаны на множественных автономных одиночных или двойных компьютерах, связанных через высокоскоростную систему связи (например, Gigabit Ethernet). Кластер Беовульфа под управлением Linux — пример гибко связанной системы.

Системы с сильной связью работают лучше и физически они меньше, чем гибко связанные системы, но исторически потребовали больших начальных инвестиций и могут быстро амортизовываться; узлы в гибко связанной системе — обычно недорогие компьютеры и могут быть использованы как независимые машины после удаления из кластера.

Системы с сильной связью имеют тенденцию быть намного больше энергоэффективными, чем кластеры. Значительная энергоэффективность достигается за счёт того, что компоненты в таких системах заранее проектируются для работы в конкретной системе, в то время как гибко связанные системы зачастую используют компоненты спроектированные для работы в более широком классе систем.

Программные реализации

Многопроцессорная обработка с SISD

В компьютере с одиночным потоком команд и одиночным потоком данных один процессор последовательно обрабатывает команды; каждая машинная команда обрабатывает один элемент данных. Пример — фон-неймановская архитектура.

Многопроцессорная обработка SIMD

В компьютере с одиночным потоком команд и множественным потоком данных один процессор обрабатывает поток команд, каждая из которых может выполнить параллельные вычисления на множестве данных.

Многопроцессорная обработка SIMD хорошо подходит для параллельной или векторной обработки, в которой большой набор данных может быть разделён на части, которые обрабатываются идентичными, но независимым операциями. Одиночный поток команд направляет[куда?] операцию модулей мультипрограммирования для выполнения однотипных манипуляций одновременно на потенциально большом количестве данных.

Для определённых типов вычислительных приложений этот тип архитектуры может дать значительное увеличение производительности с точки зрения затраченного времени. Однако, недостаток этой архитектуры состоит в том, что большая часть системы начинает простаивать при выполнении программ или системных задач, которые не могут быть разделены на модули (подзадачи), которые могут быть обработаны параллельно.

Кроме того, программы должны быть тщательно и специально написаны, чтобы иметь возможность максимально задействовать возможности архитектуры. Часто применяются специальные оптимизирующие компиляторы, спроектированные чтобы создать код специально для использования в этой среде. Некоторые компиляторы в этой категории обеспечивают специальные конструкции или расширения, чтобы позволить программистам непосредственно определять операции, которые будут выполнены параллельно (например, операторы DO FOR ALL в Фортране, используемого на ILLIAC IV, который был многопроцессорным суперкомпьютером с SIMD-архитектурой).

Многопроцессорная обработка SIMD находит широкое применение в некоторых областях, таких как компьютерное моделирование, но малополезна в универсальном настольном компьютере и бизнес-задачах.

Многопроцессорная обработка MISD

Многопроцессорная обработка с множественным потоком команд и одиночным потоком данных предлагает главным образом преимущество избыточности, так как модули мультипрограммирования выполняют одни задачи на одних данных, уменьшая возможности неправильных результатов, если один из модулей выходит из строя. Архитектура MISD позволяет сравнивать результаты вычислений в целях обнаружения отказов. Кроме избыточности и отказоустойчивости у этого типа многопроцессорной обработки немного преимуществ. К тому же он весьма дорог. Он не увеличивает производительность.

Многопроцессорная обработка MIMD

Архитектура многопроцессорной обработки MIMD является подходящей для большого числа разнообразных задач, в которых реализовано полностью независимое и параллельное выполнение команд, касающихся различных наборов данных. По этой причине и потому что это просто осуществить, MIMD преобладает в многопроцессорной обработке.

Обработка разделена на несколько потоков, каждый с собственным аппаратным состоянием процессора, в рамках единственного определённого программным обеспечением процесса или в пределах множественных процессов. Поскольку система имеет несколько потоков, ожидающих выполнения (системные или пользовательские потоки), эта архитектура эффективно использует аппаратные ресурсы.

В MIMD могут возникнуть проблемы взаимной блокировки и состязания за обладание ресурсами, так как потоки, пытаясь получить доступ к ресурсам, могут столкнуться непредсказуемым способом. MIMD требует специального кодирования в операционной системе компьютера, но не требует изменений в прикладных программах, кроме случаев когда программы сами используют множественные потоки (MIMD прозрачен для однопоточных программ под управлением большинства операционных систем, если программы сами не отказываются от управления со стороны ОС). И системное и пользовательское программное обеспечение, возможно, должны использовать программные конструкции, такие как семафоры, чтобы препятствовать тому, чтобы один поток вмешался в другой, в случае если они содержат ссылку на одни и те же данные. Такое действие увеличивает сложность кода, снижает производительность и значительно увеличивают количество необходимого тестирования, хотя обычно не настолько чтобы свести на нет преимущества многопроцессорной обработки.

Подобные конфликты могут возникнуть на аппаратном уровне между процессорами, и должен обычно решаться аппаратными средствами, или с комбинацией программного обеспечения и оборудования.

Напишите отзыв о статье "Многопроцессорность"

Ссылки

  • [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 англ.])
  • [www.britannica.com/EBchecked/topic/397249/multiprocessing multiprocessing] - Encyclopædia Britannica, Inc.

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

– Всё вдруг подошло, – отвечал граф. – Тряпки покупать, а тут еще покупатель на подмосковную и на дом. Уж ежели милость ваша будет, я времечко выберу, съезжу в Маринское на денек, вам девчат моих прикину.
– Хорошо, хорошо, у меня целы будут. У меня как в Опекунском совете. Я их и вывезу куда надо, и побраню, и поласкаю, – сказала Марья Дмитриевна, дотрогиваясь большой рукой до щеки любимицы и крестницы своей Наташи.
На другой день утром Марья Дмитриевна свозила барышень к Иверской и к m me Обер Шальме, которая так боялась Марьи Дмитриевны, что всегда в убыток уступала ей наряды, только бы поскорее выжить ее от себя. Марья Дмитриевна заказала почти всё приданое. Вернувшись она выгнала всех кроме Наташи из комнаты и подозвала свою любимицу к своему креслу.
– Ну теперь поговорим. Поздравляю тебя с женишком. Подцепила молодца! Я рада за тебя; и его с таких лет знаю (она указала на аршин от земли). – Наташа радостно краснела. – Я его люблю и всю семью его. Теперь слушай. Ты ведь знаешь, старик князь Николай очень не желал, чтоб сын женился. Нравный старик! Оно, разумеется, князь Андрей не дитя, и без него обойдется, да против воли в семью входить нехорошо. Надо мирно, любовно. Ты умница, сумеешь обойтись как надо. Ты добренько и умненько обойдись. Вот всё и хорошо будет.
Наташа молчала, как думала Марья Дмитриевна от застенчивости, но в сущности Наташе было неприятно, что вмешивались в ее дело любви князя Андрея, которое представлялось ей таким особенным от всех людских дел, что никто, по ее понятиям, не мог понимать его. Она любила и знала одного князя Андрея, он любил ее и должен был приехать на днях и взять ее. Больше ей ничего не нужно было.
– Ты видишь ли, я его давно знаю, и Машеньку, твою золовку, люблю. Золовки – колотовки, ну а уж эта мухи не обидит. Она меня просила ее с тобой свести. Ты завтра с отцом к ней поедешь, да приласкайся хорошенько: ты моложе ее. Как твой то приедет, а уж ты и с сестрой и с отцом знакома, и тебя полюбили. Так или нет? Ведь лучше будет?
– Лучше, – неохотно отвечала Наташа.


На другой день, по совету Марьи Дмитриевны, граф Илья Андреич поехал с Наташей к князю Николаю Андреичу. Граф с невеселым духом собирался на этот визит: в душе ему было страшно. Последнее свидание во время ополчения, когда граф в ответ на свое приглашение к обеду выслушал горячий выговор за недоставление людей, было памятно графу Илье Андреичу. Наташа, одевшись в свое лучшее платье, была напротив в самом веселом расположении духа. «Не может быть, чтобы они не полюбили меня, думала она: меня все всегда любили. И я так готова сделать для них всё, что они пожелают, так готова полюбить его – за то, что он отец, а ее за то, что она сестра, что не за что им не полюбить меня!»
Они подъехали к старому, мрачному дому на Вздвиженке и вошли в сени.
– Ну, Господи благослови, – проговорил граф, полу шутя, полу серьезно; но Наташа заметила, что отец ее заторопился, входя в переднюю, и робко, тихо спросил, дома ли князь и княжна. После доклада о их приезде между прислугой князя произошло смятение. Лакей, побежавший докладывать о них, был остановлен другим лакеем в зале и они шептали о чем то. В залу выбежала горничная девушка, и торопливо тоже говорила что то, упоминая о княжне. Наконец один старый, с сердитым видом лакей вышел и доложил Ростовым, что князь принять не может, а княжна просит к себе. Первая навстречу гостям вышла m lle Bourienne. Она особенно учтиво встретила отца с дочерью и проводила их к княжне. Княжна с взволнованным, испуганным и покрытым красными пятнами лицом выбежала, тяжело ступая, навстречу к гостям, и тщетно пытаясь казаться свободной и радушной. Наташа с первого взгляда не понравилась княжне Марье. Она ей показалась слишком нарядной, легкомысленно веселой и тщеславной. Княжна Марья не знала, что прежде, чем она увидала свою будущую невестку, она уже была дурно расположена к ней по невольной зависти к ее красоте, молодости и счастию и по ревности к любви своего брата. Кроме этого непреодолимого чувства антипатии к ней, княжна Марья в эту минуту была взволнована еще тем, что при докладе о приезде Ростовых, князь закричал, что ему их не нужно, что пусть княжна Марья принимает, если хочет, а чтоб к нему их не пускали. Княжна Марья решилась принять Ростовых, но всякую минуту боялась, как бы князь не сделал какую нибудь выходку, так как он казался очень взволнованным приездом Ростовых.
– Ну вот, я вам, княжна милая, привез мою певунью, – сказал граф, расшаркиваясь и беспокойно оглядываясь, как будто он боялся, не взойдет ли старый князь. – Уж как я рад, что вы познакомились… Жаль, жаль, что князь всё нездоров, – и сказав еще несколько общих фраз он встал. – Ежели позволите, княжна, на четверть часика вам прикинуть мою Наташу, я бы съездил, тут два шага, на Собачью Площадку, к Анне Семеновне, и заеду за ней.
Илья Андреич придумал эту дипломатическую хитрость для того, чтобы дать простор будущей золовке объясниться с своей невесткой (как он сказал это после дочери) и еще для того, чтобы избежать возможности встречи с князем, которого он боялся. Он не сказал этого дочери, но Наташа поняла этот страх и беспокойство своего отца и почувствовала себя оскорбленною. Она покраснела за своего отца, еще более рассердилась за то, что покраснела и смелым, вызывающим взглядом, говорившим про то, что она никого не боится, взглянула на княжну. Княжна сказала графу, что очень рада и просит его только пробыть подольше у Анны Семеновны, и Илья Андреич уехал.
M lle Bourienne, несмотря на беспокойные, бросаемые на нее взгляды княжны Марьи, желавшей с глазу на глаз поговорить с Наташей, не выходила из комнаты и держала твердо разговор о московских удовольствиях и театрах. Наташа была оскорблена замешательством, происшедшим в передней, беспокойством своего отца и неестественным тоном княжны, которая – ей казалось – делала милость, принимая ее. И потом всё ей было неприятно. Княжна Марья ей не нравилась. Она казалась ей очень дурной собою, притворной и сухою. Наташа вдруг нравственно съёжилась и приняла невольно такой небрежный тон, который еще более отталкивал от нее княжну Марью. После пяти минут тяжелого, притворного разговора, послышались приближающиеся быстрые шаги в туфлях. Лицо княжны Марьи выразило испуг, дверь комнаты отворилась и вошел князь в белом колпаке и халате.
– Ах, сударыня, – заговорил он, – сударыня, графиня… графиня Ростова, коли не ошибаюсь… прошу извинить, извинить… не знал, сударыня. Видит Бог не знал, что вы удостоили нас своим посещением, к дочери зашел в таком костюме. Извинить прошу… видит Бог не знал, – повторил он так не натурально, ударяя на слово Бог и так неприятно, что княжна Марья стояла, опустив глаза, не смея взглянуть ни на отца, ни на Наташу. Наташа, встав и присев, тоже не знала, что ей делать. Одна m lle Bourienne приятно улыбалась.
– Прошу извинить, прошу извинить! Видит Бог не знал, – пробурчал старик и, осмотрев с головы до ног Наташу, вышел. M lle Bourienne первая нашлась после этого появления и начала разговор про нездоровье князя. Наташа и княжна Марья молча смотрели друг на друга, и чем дольше они молча смотрели друг на друга, не высказывая того, что им нужно было высказать, тем недоброжелательнее они думали друг о друге.
Когда граф вернулся, Наташа неучтиво обрадовалась ему и заторопилась уезжать: она почти ненавидела в эту минуту эту старую сухую княжну, которая могла поставить ее в такое неловкое положение и провести с ней полчаса, ничего не сказав о князе Андрее. «Ведь я не могла же начать первая говорить о нем при этой француженке», думала Наташа. Княжна Марья между тем мучилась тем же самым. Она знала, что ей надо было сказать Наташе, но она не могла этого сделать и потому, что m lle Bourienne мешала ей, и потому, что она сама не знала, отчего ей так тяжело было начать говорить об этом браке. Когда уже граф выходил из комнаты, княжна Марья быстрыми шагами подошла к Наташе, взяла ее за руки и, тяжело вздохнув, сказала: «Постойте, мне надо…» Наташа насмешливо, сама не зная над чем, смотрела на княжну Марью.
– Милая Натали, – сказала княжна Марья, – знайте, что я рада тому, что брат нашел счастье… – Она остановилась, чувствуя, что она говорит неправду. Наташа заметила эту остановку и угадала причину ее.
– Я думаю, княжна, что теперь неудобно говорить об этом, – сказала Наташа с внешним достоинством и холодностью и с слезами, которые она чувствовала в горле.
«Что я сказала, что я сделала!» подумала она, как только вышла из комнаты.
Долго ждали в этот день Наташу к обеду. Она сидела в своей комнате и рыдала, как ребенок, сморкаясь и всхлипывая. Соня стояла над ней и целовала ее в волосы.
– Наташа, об чем ты? – говорила она. – Что тебе за дело до них? Всё пройдет, Наташа.
– Нет, ежели бы ты знала, как это обидно… точно я…
– Не говори, Наташа, ведь ты не виновата, так что тебе за дело? Поцелуй меня, – сказала Соня.
Наташа подняла голову, и в губы поцеловав свою подругу, прижала к ней свое мокрое лицо.
– Я не могу сказать, я не знаю. Никто не виноват, – говорила Наташа, – я виновата. Но всё это больно ужасно. Ах, что он не едет!…
Она с красными глазами вышла к обеду. Марья Дмитриевна, знавшая о том, как князь принял Ростовых, сделала вид, что она не замечает расстроенного лица Наташи и твердо и громко шутила за столом с графом и другими гостями.


В этот вечер Ростовы поехали в оперу, на которую Марья Дмитриевна достала билет.
Наташе не хотелось ехать, но нельзя было отказаться от ласковости Марьи Дмитриевны, исключительно для нее предназначенной. Когда она, одетая, вышла в залу, дожидаясь отца и поглядевшись в большое зеркало, увидала, что она хороша, очень хороша, ей еще более стало грустно; но грустно сладостно и любовно.
«Боже мой, ежели бы он был тут; тогда бы я не так как прежде, с какой то глупой робостью перед чем то, а по новому, просто, обняла бы его, прижалась бы к нему, заставила бы его смотреть на меня теми искательными, любопытными глазами, которыми он так часто смотрел на меня и потом заставила бы его смеяться, как он смеялся тогда, и глаза его – как я вижу эти глаза! думала Наташа. – И что мне за дело до его отца и сестры: я люблю его одного, его, его, с этим лицом и глазами, с его улыбкой, мужской и вместе детской… Нет, лучше не думать о нем, не думать, забыть, совсем забыть на это время. Я не вынесу этого ожидания, я сейчас зарыдаю», – и она отошла от зеркала, делая над собой усилия, чтоб не заплакать. – «И как может Соня так ровно, так спокойно любить Николиньку, и ждать так долго и терпеливо»! подумала она, глядя на входившую, тоже одетую, с веером в руках Соню.