Что более важно: большее количество ядер или более высокая тактовая частота для производительности компьютера?

Что более важно: большее количество ядер или более высокая тактовая частота для производительности компьютера?

Снижение стоимости кремния и рост потребностей потребителей, производители, похоже, продвигают одно из двух: тактовую частоту и/или количество ядер. При таком положении дел, похоже, что тактовая частота процессоров больше не растет, а растет количество ядер процессора.

Я помню, что всего несколько лет назад у меня был хороший быстрый одноядерный процессор Pentium 4. Перенесемся в сегодняшнее время, и я не думаю, что вы можете даже купить одноядерный процессор (не говоря уже о растущем росте многоядерных процессоров)даже в мобильных телефонах). Если дела пойдут так, то через несколько лет мы можем увидеть компьютеры с сотнями ядер (и я знаю, что многие операционные системы уже поддерживают это).

Что полезнее для общей производительности системы: увеличение тактовой частоты или увеличение количества ядер? Предположим, что мы получаем сотни ядер, работающих вместе, или тактовую частоту в десять раз выше, чем у нас сегодня (независимо от того, возможно ли это физически).

Приведите примеры общих процессов (например, шифрование, сжатие файлов, редактирование изображений/видео), которые получат наибольшую выгоду от того или иного? Существуют ли некоторые процессы, которыеможетбыть, но в настоящее время (по техническим причинам) не ускорены за счет увеличения их параллельности?


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

решение1

Необходимо рассмотреть две основные ситуации:

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

  2. Процессор используется для нескольких программ, работающих одновременно.

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

Во-вторых, несколько ядер пригодятся, так как каждая программа может быть назначена отдельному ядру, тем самым освобождая каждую программу от «узкого места» друг друга. В современном мире среднестатистический пользователь будет использовать свой компьютер для нескольких программ одновременно, поэтому многоядерная обработка становится желанной.

Однако многоядерные"="более высокие скорости или более высокая производительность во всех случаях. Поскольку большинство программ написано для обработки одним ядром * , тактовая частота все еще важна. Комбинация обоих должна быть принята во внимание(наряду со многими другими факторами).


* Есть некоторые программы, и, надеюсь, скоро их будет создано больше, где можно использовать несколько ядер одновременно. Будущее программного обеспечения находится в этом "Параллельное программирование":

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

-Интел

решение2

Я лично думаю, что количество ядер — это путь. Разработка программного обеспечения перешла на сетевые системы, поэтому локальные ресурсы больше не являются единственными доступными вам ресурсами. Самый важный фактор в том, как вы работаете сейчас, — это то, чтосетьВы являетесь частью.

Обратите внимание на переход к мобильному широкополосному интернету, постоянному подключению, удаленному доступу и т. д. и т. п. При этом постоянное подключение требует времени работы от батареи. Хотя спорно, какие факторы ЦП более оптимальны для времени работы от батареи (у вас есть классическое уравнение оптимизации ценности работы против времени), я лично думаю, если бы вам пришлось выбирать одно, я бы выбрал больше ядер.

Intel теперь позволяет вам включать ядра по требованию. Хотя это и не так оптимально, как отсутствие ядер для сна, возможность использовать больше ядер дает вам гибкость для запуска большего количества приложений на той же аппаратной платформе.

решение3

Как ChrisF упоминает в комментарии,это зависит.Но поскольку подобные ответы на самом деле не являются ответами, я попытаюсь рассмотреть несколько сценариев, в которых один из них будет более выгоден, чем другой:

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

Однако вы забыли об одной из самых распространенных задач, выполняемых на компьютерах сегодня: просмотр. Несколько популярных браузеров открывают каждую вкладку в отдельном процессе (я уверен, что Chrome делает это только в этом, поскольку я им пользуюсь), что означает, что если у вас открыто четыре вкладки на четырехъядерной системе, каждое окно просмотра может (теоретически) иметь ядро ​​«для себя» (игнорируя потоки ОС и прочее) и работать так же быстро, как если бы не было открыто ни одной другой вкладки/окна браузера. Для людей, которые просматривают веб-страницы с множеством открытых вкладок одновременно, это может стать серьезным улучшением производительности без необходимости создания чрезвычайно быстрых ядер ЦП.

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


В других ответах также содержится несколько важных моментов:

  • Производительность процессора теперь определяется не только тактовой частотой или количеством ядер — по мере повышения тактовой частоты и количества ядер узкими местами становятся другие компоненты процессора.
  • Для большинства пользователей производительность процессора даже не является узким местом. Если вы проводите время в хостинговых приложениях, таких как Google Docs, скорость вашей сетевой карты будет иметь большее значение, чем скорость ядер вашего процессора. Если вы смотрите или редактируете фильмы в высоком разрешении, производительность жесткого диска будет иметь большее значение. И т. д.

решение4

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

Сегодня вы должны рассмотреть множество факторов, чтобы сделать вывод о производительности процессоров. Такие вещи, как:

  • количество ядер
  • количество параллельных рабочих потоков
  • Семейство процессоров (Dual core, Pentium, Core i / Calpella, Sandy Bridge и т. д.)
  • поколение процессора (2-е, 6-е и т.д.) и затем
  • тактовая частота процессора.

На самом деле, когда я хочу сравнить скорости процессоров, я консультируюсьПроходной баллизпроверка ноутбукаТаблицы бенчмарков. По моему мнению, бенчмарки — лучший фактор для измерения и сравнения скорости и производительности процессора.

Связанный контент