
Возможный дубликат:
Насколько быстро каждое ядро в двухъядерном процессоре?
Я выбираю между двумя системами (для простоты):
(1)Двухъядерный процессор 2,9 ГГц
(2)Четырехъядерный процессор 2,3 ГГц
Теперь, когда я об этом размышляю, у меня есть несколько конкретных вопросов, на которые я хотел бы ответить.
Во-первых, как на самом деле рассчитываются «числа» (частоты) и что они означают? Для двухъядерного процессора с частотой 2,9 ГГц означает ли это, что каждое ядро работает на частоте около 2,9 ГГц или что каждое ядро работает на частоте 2,9/2 = 1,45 ГГц? Точно так же, дает ли четырехъядерный процессор «чистую» скорость 2,3 ГГц или каждое ядробуквальноработает на частоте 2,3 ГГц?
На основе информации, которую я прочитал в Интернете, я предполагаю, что каждое ядро на самом деле работает на указанной скорости (я знаю, что вы не сможете получить 12 ГГц от четырехъядерной системы с частотой 3 ГГц, если ваш код не является идеально линейным при распараллеливании).
Мой другой вопрос: предположим, что у вас есть код, работающий исключительно параллельно. В какой момент дополнительное ядро позволяет этому коду работать быстрее просто потому, что меньше вмешательства ОС (и других фоновых задач)?
Например, если бы у меня был выбор между двухъядерным процессором 2,6 ГГц и четырехъядерным процессором 2,5 ГГц, даже дляодинокиймногопоточных программ, я бы предположил, что 2,5-ядерный четырехъядерный процессор будет работать быстрее, поскольку один поток будет меньше прерываться другими программами (включая ОС).
решение1
Для двухъядерного процессора с частотой 2,9 ГГц означает ли это, что каждое ядро работает на частоте около 2,9 ГГц или это означает, что каждое ядро работает на частоте 2,9/2 = 1,45 ГГц? Точно так же, дает ли четырехъядерный процессор «чистую» скорость 2,3 ГГц или каждое ядро буквально работает на частоте 2,3 ГГц?
Ты никогда, никогда,всегдаТаким образом, добавляйте скорости. Две машины, каждая из которых едет со скоростью 50 миль в час, не заставят что-либо ехать со скоростью 100 миль в час, и точка. Если частота ядра процессора составляет 2,9 ГГц, это означает, что вы можете разогнать его до 2,9 ГГц, то есть его тактовая частота может циклироваться 2,9 миллиарда раз в секунду.
Например, если бы у меня был выбор между двухъядерным процессором с тактовой частотой 2,6 ГГц и четырехъядерным процессором с тактовой частотой 2,5 ГГц, даже для однопоточных программ я бы предположил, что четырехъядерный процессор с тактовой частотой 2,5 ГГц будет работать быстрее, поскольку один поток будет меньше прерываться другими программами (включая ОС).
Это бессмысленный вопрос. Нельзя сравнивать разные процессоры по их тактовой частоте. Это как сказать: «У вас есть один автомобиль с 10-галлонным топливным баком и другой с 12-галлонным топливным баком, который может проехать больше на одном баке?» Ну, это зависит от того, сколько они весят, насколько велики их двигатели и так далее.
Никогда не сравнивайте процессоры по тактовой частоте, если только они не идентичны в остальном. И очевидно, что двухъядерный и четырехъядерный процессоры сильно отличаются.
Если представить себе два процессора, которые отличаются только тем, что один из них двухъядерный 2,6 ГГц, а другой — четырехъядерный 2,5 ГГц, то, скорее всего, не будет никакой существенной разницы в запуске однопоточной программы, если предположить, что система не сильно загружена другими программами. Очень маловероятно, что накладные расходы ОС будут превышать ядро, и в любом случае у вас есть по крайней мере одно ядро, доступное для задач ОС, таких как дисковый ввод-вывод и прерывания. Например, если ограничивающим фактором является пропускная способность памяти, больше ядер не поможет.
Тем не менее, больше ядер почти всегда лучше, чем меньше ядер, при прочих равных условиях. Для настольного компьютера я не вижу смысла в двухъядерном процессоре. И, заглядывая в будущее, все больше и больше программного обеспечения будут знать, как использовать преимущества большего количества ядер.