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

4676
bAN

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

17

5 ответов на вопрос

18
John Fouhy

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

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

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

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

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

3
nik

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

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

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

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

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

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

-1: в этом ответе много неточностей. (1) 3 ГГц не является «ограничением скорости», есть процессоры, которые работают на более высоких частотах, чем 3 ГГц. Предел, с которым столкнулся производитель процессоров, соответствовал процессорам с более высокой производительностью в рамках устойчивого энергопотребления. (2) Ваш второй абзац подразумевает, что многопроцессорные материнские платы были введены, потому что был достигнут «предел скорости». Фактически, материнские платы с несколькими сокетами были примерно 5-10 лет назад (возможно, даже дольше, я не могу найти точную дату, когда серверы ПК стали многоядерными). hanleyp 15 лет назад 3
Я знаю, что это не на 100% правильно, и я пытался сохранить свой ответ с точки зрения непрофессионала. Это просто тупая версия, чтобы люди как-то понимали, в чем разница. Я уверен, что, когда люди действительно хотят узнать все подробности, они будут расследовать больше для себя. Параграф 2 начинается со слова «В то же время», означающего «ЦП», где производятся более быстрые материнские платы с несколькими сокетами ЦП, где они созданы (что было около 10 лет назад). Luke 15 лет назад 0
Это круто. Я просто хотел указать на то, что, по моему мнению, нуждается в разъяснении. Я отменю свой голос, но не смогу, если вы не отредактируете ответ. hanleyp 15 лет назад 0
Я рад внести изменения, но что именно вы хотите, чтобы я изменил? Что есть процессоры, которые идут до 3,2 гигагерца или, может быть, немного выше? Можете ли вы уточнить? Luke 15 лет назад 0
Вам не нужно менять контент, если вы этого не хотите, я просто не смогу проголосовать за него, пока вы не отредактируете что-то. hanleyp 15 лет назад 0
Я перефразировал это немного здесь и там. Дайте мне знать, если вы обнаружите какие-либо другие несоответствия. Luke 15 лет назад 0
-1: Вы объясняете, почему мы видим многоядерные системы, но спрашивающий спрашивает не так. Вы не объяснили разницу между несколькими ядрами и несколькими процессорами. John Fouhy 15 лет назад 2
@ Джон Фухи: Вы можете быть правы, но я думаю, что одно связано с другим. Понимание различий между несколькими ядрами и несколькими процессорами, на мой взгляд, все еще связано с масштабированием, и один из них - просто эволюционный шаг за другим. Luke 15 лет назад 0
+1 Поскольку я только начал копаться в этой теме, я нахожу ваш ответ довольно полезным, поскольку он позволяет мне (и, возможно, другим) увидеть общую картину и обрести некоторую уверенность в этом. Хотя ответ может быть не на 100% точным, он хорошо объясняет на самом базовом уровне, почему производители процессоров перешли от вертикального масштаба к горизонтальному. Я также добавил +1 комментарий @ hanleyp для разъяснения вопроса о лимите. Gabriel C. Troia 10 лет назад 0
1
jerryjvl

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

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

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

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

Похожие вопросы