Насколько быстро каждое ядро ​​в двухъядерном процессоре?

10

Мой Macbook имеет двухъядерный процессор 2,4 ГГц. Поскольку он имеет два отдельных ядра, это означает, что он может выполнять две функции одновременно, верно?

Значит ли это, что каждое ядро ​​составляет ок. 1,2 ГГц каждая (для комбинированных 2,4 ГГц) или они фактически 2,4 ГГц каждая, и, следовательно, эффективно работают на частоте 4,8 ГГц?

Двухъядерные (и четырехъядерные) процессоры меня смущают.

Джош Хант
источник
1
Стоит также отметить, что частота ядра на самом деле не является важным фактором для определения количества операций / инструкций, которые процессор может выполнять за секунду (в наши дни).
Каллум Роджерс
Две машины, едущие по шоссе со скоростью 50 миль в час, "эффективно бегут со скоростью 100 миль в час"? Вы не можете добавлять скорости таким образом, это не имеет смысла.
Дэвид Шварц

Ответы:

17

Каждое ядро ​​работает на частоте 2,4 ГГц.

Хотя это не означает, что ваша система в два раза быстрее одноядерной системы с частотой 2,4 ГГц. Параллелизм имеет (в принципе) самое большее линейное ускорение, но в действительности оно часто намного медленнее (хотя все же быстрее, чем одно ядро).

детеныш
источник
3
быстрее, чем одноядерное, за исключением странного случая с потоками Python.
Коббал
В самом деле? Поток Python на самом деле замедляет программу? Или это просто преувеличение?
stalepretzel
+1 - Вы можете хотеть короткую рекламу параллелизма, но это не обязательно. Может быть, с красивым графиком? :)
Романдас
1
@stalepretzel: Многие известные реализации Python имеют нечто, называемое a, Global Interlock Cacheчто означает, что только один поток может изменять глобальный (то есть совместно используемое состояние одновременно). Это действительно замедляет работу при многопоточности, во многих случаях фактически делая программу медленнее, чем однопоточная разновидность.
Каллум Роджерс
2

Йоханнес выше справедливо, когда говорит о максимальной частоте каждого ядра в многоядерном процессоре. Номинальная частота относится к каждому ядру. Так, многоядерный процессор с частотой 2,4 ГГц, как правило, работает на каждом процессоре с максимальной частотой 2,4 ГГц. Есть два исключения (одно очень распространенное и одно новое):

  • Частота процессора может быть динамически масштабирована на основе требуемой производительности и потребляемой мощности для экономии энергии, когда питание не требуется, или для понижения температуры (P-состояние).
  • Кроме того, последние процессоры имеют функцию «Turbo», когда одно ядро ​​работает быстрее, чем номинальное, когда другие ядра не используются (Turbo Boost).
hanleyp
источник
1

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

Эффект наличия нескольких ядер:

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

Это означает, что в большинстве случаев ваша вычислительная мощность будет удвоена, но не на каком-либо одном потоке.

Джон Гитцен
источник
8
Это в основном, но не полностью, правда. Современные операционные системы являются многопоточными, поэтому даже однопоточные приложения могут видеть повышение производительности на многоядерном оборудовании из-за возможности параллелизации вызовов операционной системы и различных накладных расходов.
Клин
0

Ваш вопрос касается процессоров Core 2, а не Core i7. Обратите внимание, что, если вы купите Core i7 920, вы увидите, что процессор представляет собой четырехъядерный процессор, работающий на частоте 2,66 ГГц. Это означает, что каждое ядро ​​работает на частоте 2,66 ГГц. Однако из-за Turbo Boost в Core i7 процессор может работать на частоте 2,8 ГГц, особенно если вы используете однопоточные приложения.

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

ChrisInEdmonton
источник