В чем разница между многоядерными и многопроцессорными системами?

18

Интересно, в чем разница между двухъядерным компьютером и компьютером с двумя процессорами на материнской плате? Я думаю, что это связано с потоками, но я не очень хорошо понимаю это ..

запрет
источник

Ответы:

19

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

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

Там могут быть некоторые различия в производительности, но вы ничего не заметите.

Джон Фухи
источник
2
Не только занимая меньше места, но и выделяя меньше тепла (используя меньше энергии) и требуя только один охлаждающий вентилятор.
CarlF
13

Посмотрите на это изображение, которое показывает разницу между Multi Processor, Hyper Threaded и Multi Core:

введите описание изображения здесь

когти
источник
3

Вы должны начать со статей о многоядерности и многопоточности в Википедии.

Nik
источник
1
Ссылка на «Различие между многопоточным и многоядерным программированием» не работает.
SparkAndShine
2

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

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

Перенесемся в настоящее время. Ограничение скорости процессора несколько достигнуто, и вместо масштабирования по вертикали (что делает его быстрее), производители процессоров начинают масштабироваться горизонтально, размещая несколько ядер на одном чипе. В настоящее время двухъядерные чипы очень распространены, и скоро четырехъядерные процессоры станут стандартом. Теперь представьте, что вы поместили два четырехъядерных ядра на одну материнскую плату. Это будет означать, что операционная система будет иметь доступ к 8 процессорам, работающим на частоте около 3 гигагерц.

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

Люк
источник
3
-1: в этом ответе много неточностей. (1) 3 ГГц не является «ограничением скорости», есть процессоры, которые работают на более высоких частотах, чем 3 ГГц. Предел, с которым столкнулся производитель процессоров, соответствовал процессорам с более высокой производительностью в пределах устойчивого энергопотребления. (2) Ваш второй абзац подразумевает, что многопроцессорные материнские платы были введены, потому что был достигнут «предел скорости». Фактически, материнские платы с несколькими сокетами были примерно 5-10 лет назад (возможно, даже дольше, я не могу найти точную дату, когда серверы ПК стали многоядерными).
Hanleyp
Я знаю, что это не на 100% правильно, и я пытался сохранить свой ответ с точки зрения непрофессионала. Это просто тупая версия, чтобы люди как-то понимали, в чем разница. Я уверен, что, когда люди действительно хотят узнать все подробности, они будут расследовать больше для себя. Параграф 2 начинается с «Тем временем», то есть когда ЦП производятся быстрее, чем создаются материнские платы с несколькими сокетами (что было около 10 лет назад).
Люк
Это классно. Я просто хотел указать на то, что, по моему мнению, нуждается в разъяснении. Я отменю свой голос, но не смогу, если вы не отредактируете ответ.
Hanleyp
Я рад внести изменения, но что именно вы хотите, чтобы я изменил? Что есть процессоры, которые идут до 3,2 гигагерца или, может быть, немного выше? Можете ли вы уточнить?
Люк
2
-1: Вы объясняете, почему мы видим многоядерные системы, но спрашивающий спрашивает не так. Вы не объяснили разницу между несколькими ядрами и несколькими процессорами.
Джон Фухи
1

С точки зрения разработки программного обеспечения разница относительно небольшая.

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

Основное различие между двумя сценариями для одного и того же общего числа доступных ядер (например, 1x 4-ядерный процессор против 2x 2-ядерный процессор) состоит в том, что в случае многопроцессорного сценария обычно имеется больший объем совокупной памяти -пропускная способность. Это означает, что для любой рабочей нагрузки, которая требует много памяти, вам может быть лучше с последним. Однако обратите внимание, что блокирующие примитивы могут на самом деле быть немного медленнее (в зависимости от аппаратной реализации), поэтому алгоритмы, которые используют большую синхронизацию, могут на самом деле работать хуже на последнем.

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

jerryjvl
источник