Симметричная мультипроцессорность

Симметричная мультипроцессорность

Симметричное мультипроцессирование (англ. Symmetric Multiprocessing, сокращённо SMP) — архитектура многопроцессорных компьютеров, в которой два или более одинаковых процессоров подключаются к общей памяти. Большинство многопроцессорных систем сегодня используют архитектуру SMP.

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

Содержание

Преимущества и недостатки

SMP часто применяется в науке, промышленности, бизнесе, где программное обеспечение специально разрабатывается для многопоточного выполнения. В то же время большинство потребительских продуктов, таких как текстовые редакторы и компьютерные игры, написаны так, что они не могут получить много пользы от SMP-систем. В случае игр это зачастую связано с тем, что оптимизация программы под SMP-системы приведёт к потере производительности при работе на однопроцессорных системах, которые занимают большую часть рынка. В силу природы разных методов программирования для максимальной производительности потребуются отдельные проекты для поддержки одного процессора и SMP-систем. И все же программы, запущенные на SMP-системах, получают незначительный прирост производительности, даже если они были написаны для однопроцессорных систем. Это связано с тем, что аппаратные прерывания, обычно приостанавливающие выполнение программы для их обработки ядром, могут обрабатываться на свободном процессоре. Эффект в большинстве приложений проявляется не столько в приросте производительности, сколько в ощущении, что программа выполняется более плавно. В некоторых приложениях, в частности, программных компиляторах и некоторых проектах распределённых вычислений, повышение производительности будет почти прямо пропорционально числу дополнительных процессоров.

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

Проблемы

Ограничение на количество процессоров

При увеличении числа процессоров заметно увеличивается требование к полосе пропускания шины памяти. Это накладывает ограничение на количество процессоров в SMP архитектуре. Современные SMP-системы позволяют эффективно работать при 16 процессорах.

Проблема когерентности кэш-памяти

Проблема, о которой идет речь, возникает из-за того, что значение элемента данных в памяти, хранящееся в двух разных процессорах, доступно этим процессорам только через их индивидуальные кэши. Если процессор изменит значение элемента данных в своем кеше, то при попытке вывода данных из памяти будет получено старое значение. Наоборот, если подсистема ввода/вывода вводит в ячейку основной памяти новое значение, в кэш-памяти процессора по-прежнему остается старое.

Альтернативы

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

Другими подходами являются асимметричное мультипроцессирование (ASMP), в котором отдельные специализированные процессоры используются для конкретных задач, и кластерная мультипроцессорность (Beowulf), в которой не вся память доступна всем процессорам. Такие подходы нечасто используются (хотя высокопроизводительные 3D-чипсеты в современных видеокартах могут рассматриваться как форма асимметричной мультипроцессорности), в то время как кластерные системы широко применяются при построении очень больших суперкомпьютеров.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Симметричная мультипроцессорность" в других словарях:

  • Распределённые вычисления — Не следует путать с Добровольные вычисления. См. также: Параллельные вычисления Распределённые вычисления способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, чаще всего объединённых в параллельную… …   Википедия

  • Параллельные вычисления — Не следует путать с Распределённые вычисления. Параллельные вычисления  такой способ организации компьютерных вычислений, при котором программы разрабатываются как набор взаимодействующих вычислительных процессов, работающих параллельно… …   Википедия

  • СМП — СМП  многозначный термин СМП Банк СМП Нефтегаз СМП 86 СМП  аббревиатура северный, северное СМП, Севмаш, Севмашпредприятие  Северное машиностроительное предприятие СМП или Севморпуть  Северный морской путь СМП  …   Википедия

  • SPARC64 VI — (кодовое имя «Olympus C»)  микропроцессор, разработанный Fujitsu. Он использует систему команд SPARC V9 и удовлетворяет спецификации Joint Programming Specification (JSP1), разработанной Fujitsu и Sun. Процессор используется в совместной… …   Википедия

  • UltraSPARC IV — («Jaguar») и последовавший за ним UltraSPARC IV+ («Panther»)  это микропроцессоры, разработанные Sun Microsystems и произведённые Texas Instruments. Это четвёртое поколение микропроцессоров UltraSPARC, они используют систему команд SPARC V9 …   Википедия

  • Uniform Memory Access — Иное название этого понятия  «UMA»; см. также другие значения. Uniform Memory Access (сокращённо UMA  «однородный доступ к памяти»)  архитектура многопроцессорных компьютеров с общей памятью. Все микропроцессоры в UMA архитектуре… …   Википедия

  • Массово-параллельная архитектура — (англ. Massive Parallel Processing, MPP)  класс архитектур параллельных вычислительных систем. Особенность архитектуры состоит в том, что память физически разделена. Система строится из отдельных узлов (англ. node), содержащих… …   Википедия

  • TOPS-10 — (Timesharing / Total OPerating System) операционная система от Digital Equipment Corporation (DEC) для серии мейнфреймов PDP 10 (или DECsystem 10), созданной в 1967. TOPS 10 возникла из раннего программного обеспечения Monitor для компьютеров PDP …   Википедия

  • Xv6 — Разработчик Массачусетский технологический институт Семейство ОС потомок UNIX Поддерживаемые платформы Симметричная мультипроцессорность x86 Тип ядра Монолитное Лицензия …   Википедия

  • MPSoC — Многопроцессорная система на кристалле (Multiprocessor System on Chip (MPSoC)) система на кристалле (SoC), содержащая несколько процессоров, обычно предназначенная для встраиваемых систем. Используется платформами, содержащими несколько, обычно… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»