Ответы:
Несколько процессоров позволяют вашему компьютеру делать буквально две вещи одновременно (вместо того, чтобы делать только две вещи одновременно, а на самом деле просто переключаться между задачами очень быстро).
Несколько ядер одинаковы. Преимущество нескольких ядер перед несколькими процессорами состоит в том, что они совместно используют некоторые биты ЦП, например, кэш второго уровня, что позволяет им работать еще эффективнее, если у них есть некоторые общие данные. Это делает их намного дешевле в производстве. Один двухъядерный процессор также занимает меньше места, чем два одноядерных, что является важным фактором в наши дни, когда все переходят на ноутбуки.
Там могут быть некоторые различия в производительности, но вы ничего не заметите.
Вы должны начать со статей о многоядерности и многопоточности в Википедии.
Ну, это о масштабировании по горизонтали, а не по вертикали. В старые времена они делали процессоры все быстрее и быстрее. Со временем скорость ЦП увеличилась с всего лишь нескольких мегагерц до суперскоростей, достигающих 3 гигагерц. Однако, когда была достигнута скорость в 3 гигагерца, производители процессоров нашли предел тому, насколько далеко они могут увеличивать скорость на одном ядре процессора.
В то время как эта гонка скорости происходила, для тех приложений, которым требовалось больше энергии (таких как серверы и фермы рендеринга CGI), были представлены материнские платы с несколькими сокетами. Это позволило разместить более одного процессора (обычно два) на материнской плате. Операционные системы, в которых возможно одновременное использование нескольких процессоров, могут запускать программное обеспечение, которое использует эту функцию, распределяя нагрузку между этими двумя процессорами, тем самым увеличивая скорость выполнения.
Перенесемся в настоящее время. Ограничение скорости процессора несколько достигнуто, и вместо масштабирования по вертикали (что делает его быстрее), производители процессоров начинают масштабироваться горизонтально, размещая несколько ядер на одном чипе. В настоящее время двухъядерные чипы очень распространены, и скоро четырехъядерные процессоры станут стандартом. Теперь представьте, что вы поместили два четырехъядерных ядра на одну материнскую плату. Это будет означать, что операционная система будет иметь доступ к 8 процессорам, работающим на частоте около 3 гигагерц.
Помимо многоядерных процессоров, существует также «поддельный» двухъядерный процессор, который использует технологию, известную как «гиперпоточность». При гиперпоточности процессор эмулирует присутствие двух процессоров, когда в действительности присутствует только одно действующее ядро. Процессор знает, как использовать то, что обычно бывает простоем, путем планирования инструкций особым образом, получая большую эффективность.
С точки зрения разработки программного обеспечения разница относительно небольшая.
Некоторые неправильно написанные многопоточные приложения могут случайно работать на многоядерном процессоре, но не на многопроцессорной материнской плате, но я бы не стал слишком много спать из-за этого, поскольку ... ну ... мы говорим неправильно письменное программное обеспечение.
Основное различие между двумя сценариями для одного и того же общего числа доступных ядер (например, 1x 4-ядерный процессор против 2x 2-ядерный процессор) состоит в том, что в случае многопроцессорного сценария обычно имеется больший объем совокупной памяти -пропускная способность. Это означает, что для любой рабочей нагрузки, которая требует много памяти, вам может быть лучше с последним. Однако обратите внимание, что блокирующие примитивы могут на самом деле быть немного медленнее (в зависимости от аппаратной реализации), поэтому алгоритмы, которые используют большую синхронизацию, могут на самом деле работать хуже на последнем.
Несмотря на это, я бы не беспокоился о разнице даже тогда, потому что, если вы работаете в области, где это различие имеет значение, вы, скорее всего, уже знаете об этом (знание, относящееся к конкретной области).