Процессорные ядра: чем больше, тем лучше?
В настоящее время у меня есть двухъядерный процессор на работе и четырехъядерный дома. Я заметил, что оба компьютера довольно похожи в плане запуска приложений / серфинга в Интернете.
Разница, которую я вижу, состоит в том, что мой двухъядерный процессор имеет частоту 2,8 ГГц, а мой четырехъядерный процессор - 2,4 ГГц.
Лучше иметь двухъядерный процессор с высокой тактовой частотой или четырехъядерный процессор с посредственной тактовой частотой?
12 ответов
ПРИМЕЧАНИЕ: этот ответ был написан 8 лет назад. Параллельное программирование стало более актуальным. Вероятно, это связано с внутренними ограничениями тактовой частоты и быстрым приближением к размеру транзистора.
Ваша основная проблема - это программное обеспечение, не написанное для многоядерности.
Посмотрите на отличную статью Джеффа Этвуда о выборе двухъядерного или четырехъядерного процессора.
для большинства программного обеспечения вы быстро достигаете точки снижения отдачи после двух ядер. В " Четырехъядерных десктопах и убывающей отдаче" я задался вопросом, насколько эффективно современное программное обеспечение может реально использовать даже четыре ядра ЦП, не говоря уже о неизбежных восьми и шестнадцати ядрах ЦП, которые мы увидим через несколько лет.
Вам ответили здесь (выделение выделено из статьи Джеффа),
Однако здесь были некоторые сюрпризы, такие как Excel 2007 и настройка "параллельных операций" Lost Planet. Вполне возможно, что разработка программного обеспечения в конечном итоге приведет к тому, что тактовая частота будет иметь меньшее значение, чем параллелизм. Или, в конце концов, это может быть неактуально, если мы не сделаем выбор между более высокими тактовыми частотами и большим количеством ядер процессора. Но в то же время, тактовая частота побеждает большую часть времени. Больше процессорных ядер автоматически не лучше. Типичным пользователям будет лучше с самым быстрым двухъядерным процессором, который они могут себе позволить.
Вопрос Front-Side Bus (этот термин меня всегда забавлял).
С Nehalem все меняется... как сказала ArsTechnica в прошлом году.
Закон Мура дал разработчикам процессоров затруднение из-за богатства транзисторов, и нигде это не так очевидно, как в 45-нм процессоре Intel Nehalem. Дебютировав в 4- и 8-ядерном варианте позже в этом году, Nehalem упаковывает тонну аппаратного обеспечения в одно процессорное гнездо. (В первых числах число транзисторов четырехъядерного Nehalem составляло 781 миллион; пока не появилось ни одного числа для 8-ядерной модели.) Но пытаться снабдить все это оборудование существующей архитектурой внешней шины на платформе Intel было бы глупо. Так что, что не менее важно, Nehalem также звучит давно назревшим смертельным звонком для архитектуры Intel с положительным гериатрическим фронтом.
Радикальное изменение в пропускной способности системы Intel, которое представляет новое Intel QuickPath Interconnect (QPI), является, пожалуй, самым крупным фактором, повлиявшим на дизайн Nehalem. Между QuickPath и встроенным контроллером памяти Nehalem процессор Nehalem будет иметь доступ к беспрецедентной совокупной пропускной способности, особенно в двух- и четырехпроцессорных реализациях.
AMD ранее перенесла контроллер памяти в процессор и использовала Hypertransport.
По моему опыту, огромное преимущество в производительности достигается от одного до двух ядер. Внезапно одна программа с высоким процессором не блокирует вашу машину и не делает ее слишком медленной. Огромная разница.
Но без четверти четыре? Для 99% людей это не будет иметь значения. Вам придется запускать много программ одновременно или использовать программы, которые могут использовать более двух ядер (а реально их не так много). Некоторые медиа-кодеры приходят на ум.
В этом отношении также есть разница между Intel Core 2s и AMD Phenoms. AMD использует Hypertransport, который является протоколом точка-точка, поэтому каждое ядро имеет выделенную полосу пропускания. Intel Core 2 (но не Core i7 и другие процессоры на базе Niehalem) используют шину на передней панели, которая имеет общую пропускную способность, поэтому у вас больше ядер, конкурирующих за одинаковую пропускную способность.
Это может потенциально сделать один и тот же тактовый четырехъядерный процессор (незначительно) медленнее в некоторых обстоятельствах. Соотношение цены и качества до сих пор с двумя ядрами ИМХО. При этом у меня есть четырехъядерный процессор.
Мне нравится, как Дональд Кнут подводит итог:
Для меня это выглядит более или менее так, как будто разработчики аппаратного обеспечения исчерпали идеи и что они пытаются переложить вину за будущую кончину закона Мура на разработчиков программного обеспечения, предоставив нам машины, которые работают быстрее только на нескольких ключевые ориентиры! Я совсем не удивлюсь, если вся идея многопоточности окажется провалом, хуже, чем подход Itanium, который должен был быть настолько потрясающим, пока не оказалось, что желаемые компиляторы в принципе невозможно было написать,
Позвольте мне выразиться так: за последние 50 лет я написал более тысячи программ, многие из которых имеют значительный объем. Я не могу вспомнить даже пять из тех программ, которые были бы заметно улучшены благодаря параллелизму или многопоточности. Конечно, например, несколько процессоров не помогают TeX.
Для некоторых приложений очень легко использовать преимущества нескольких ядер. Но некоторые другие приложения никогда не выиграют от них, в то время как другие могут выиграть, если разработчики оптимизируют их (что очень сложно).
Для моего основного рабочего стола у моего работодателя я использую двухъядерный процессор Xeon с 8 ГБ оперативной памяти.
Когда я программирую, и у меня есть Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (или 2010) и локальный экземпляр Sql Server Express... все гудит просто отлично.
Для сравнения, раньше у меня было двухъядерное ядро, и все начинало ползти, когда работали только Visual Studio, Chrome и Sql Express.
Дело в том, что вы делаете с машиной. Если вы опытный пользователь, который будет заниматься редактированием видео, трехмерным моделированием или программированием со значительными ресурсами... тогда да, вам понадобится четырехъядерный процессор и много оперативной памяти.
Обратите внимание, что последние процессоры i7 могут на самом деле увеличить тактовую частоту на активных ядрах, когда не все из них необходимы; например, если у вас есть четырехъядерный процессор на частоте 2,4 ГГц, но для работы программного обеспечения требуются только 2 ядра, то он может автоматически работать с тактовой частотой до 2,8 ГГц (не фактическая цифра, просто пример).
И последнее поколение i7, я думаю, может работать на 3 или 4 бинах, если требуется только одно или два ядра. Таким образом, он не может остаться таким же компромиссным решением, как сейчас...
Согласно Anandtech.com :
Все сводится к TDP чипа или его тепловой точке проектирования. Чем больше TDP ограничивает платформу, тем больше вы выигрываете от турбо-режима Intel. Позвольте мне сказать это по-другому; чтобы встраивать четыре ядра в TDP мощностью 130 Вт, каждое ядро должно работать с более низкой тактовой частотой, чем если бы у нас было только одно ядро с тем же TDP.
При более высоких значениях TDP обычно достаточно запаса тепла, чтобы отдельные ядра работали достаточно высоко. При более низких значениях TDP производители процессоров должны найти компромисс между количеством ядер и их тактовой частотой - вот где мы можем повеселиться.
Это все в контексте необходимости выбирать между ядрами (или потоками) и частотой ядра.
Для повседневного использования и программ, которые не оптимизированы для многоядерных процессоров, быстрый двухъядерный процессор превзойдет более медленный четырехъядерный.
С течением времени и правильное использование многопоточных приложений станет нормой для четырехъядерных процессоров.
С точки зрения перспективы, двухъядерные процессоры по-прежнему имеют удобное преимущество.
Это зависит. Если вы делаете вещи, которые будут использовать каждое ядро, лучше использовать 4 ядра (редактирование видео, рендеринг и т. Д.). В настоящее время большинство людей найдут два быстрых ядра лучше, потому что написано не так много приложений, чтобы в полной мере использовать 4 ядра.
Если вы выполняете много кодирования видео, 3D-рендеринга или сборок распределенного исходного кода, то чем больше ядер, тем лучше. Вы увидите заметную разницу в производительности для этих типов приложений при переходе с 1 на 2 до 4 на 8 ядер.
В противном случае стандартные приложения действительно не выиграют от большего количества ядер. Даже игры на самом деле не будут так много использовать несколько ядер. ИМО, вам лучше потратить деньги на лучшую видеокарту.
Зависит.
Даже очень.
Вы можете легко найти четырехъядерный процессор, используя только два ядра. Отчасти это связано с ОС и дизайном программного обеспечения. Более того, они все еще разделяют все остальное, особенно память, диск и устройства.
Вы знаете, что ОС не будет загружаться (заметно) быстрее, а веб-страницы не будут загружаться быстрее (хотя они могут рисовать быстрее).
Зависит от того, что вы делаете, а также от возможностей вашей ОС и приложений.
Если у вас легковесная ОС и запущено одно приложение, связанное с процессором, которое может использовать только один процессор, то два процессора на более высокой скорости будут лучшим выбором.
В противном случае, если ОС может эффективно планировать все ядра, и вы запускаете много приложений или приложений, которые могут использовать более одного процессора с более медленным четырехъядерным процессором, можно ожидать более высокую производительность при более низком энергопотреблении и, следовательно, меньшем тепловыделении.
В вашем случае четырехъядерный процессор будет лучше. Помните, что чем больше у вас ядер, тем больше параллельной обработки вы можете выполнять. Таким образом, на вашем двухъядерном процессоре вы сможете запускать одно приложение быстрее, чем четырехъядерный, но четырехъядерный может запускать 4 приложения быстрее, чем ваш двойной. Кроме того, если приложение написано для параллельной обработки (многопоточность), приложение будет работать лучше на многоядерной архитектуре.
Однако все это относительно, поскольку четырехъядерный процессор, работающий на частоте 100 МГц, не будет работать с двухъядерными процессорами 4 ГГц. Вообще говоря, чем больше ядер, тем лучше.