С уменьшением стоимости кремния и растущими потребностями потребителей производители, похоже, настаивают на одном из двух: тактовая частота и / или количество ядер. По ходу дела не похоже, что тактовая частота процессоров больше растет, а количество процессорных ядер.
Я помню только несколько лет назад, у меня был хороший быстрый одноядерный процессор Pentium 4. Перенесемся в будущее, и я не думаю, что вы даже можете приобрести одноядерный процессор (не говоря уже о растущем росте многоядерных процессоров даже в мобильных телефонах ). По ходу дела мы можем найти компьютеры с сотнями ядер через несколько лет (и я знаю, что многие операционные системы уже поддерживают его).
Является ли более выгодным для общей производительности системы увеличение тактовой частоты или увеличение количества ядер? Предположим, что мы работаем с сотнями ядер, работающих вместе, или с тактовой частотой в десять раз выше, чем у нас сегодня (независимо от того, физически это возможно или нет).
Каковы некоторые примеры общих процессов (например, шифрование, сжатие файлов, редактирование изображений / видео), которые больше всего выиграют от того или иного? Существуют ли какие-то процессы, которые могут быть, но в настоящее время (по техническим причинам) не ускоряются за счет увеличения их параллелизма?
Предположим, что гипотетический процессор имеет точно такой же дизайн ядра (размер слова, ширина адреса, размер шины памяти, кэш и т. Д.), Поэтому единственными переменными здесь являются тактовая частота и количество ядер. И опять же, я не говорю об одном, двух или даже четырех ядрах - представьте от десятков до сотен.
Ответы:
Есть две основные ситуации, которые следует учитывать:
Процессор используется с компьютером, который выполняет вычисления только для одной программы
Процессор используется для нескольких программ, работающих одновременно
Первая ситуация, когда скорость процессора более важна, так как пользователь хочет иметь возможность быстро и эффективно производить расчеты. Эти ситуации обычно предназначены для интенсивной обработки вычислений, то есть вычисления простых чисел для шифрования / дешифрования.
Во-вторых, несколько ядер пригодятся, так как каждая программа может быть назначена отдельному ядру, что освобождает каждую программу от «узкого места» друг друга. В современном мире средний пользователь будет использовать свой компьютер для нескольких программ одновременно, что делает многоядерную обработку желаемой вещью.
Однако многоядерный ! = Более высокая скорость или более высокая производительность во всех случаях. Поскольку большинство программ написаны для одноядерной обработки * , тактовая частота все еще важна. Необходимо учитывать комбинацию обоих факторов (наряду со многими другими факторами) .
* Есть несколько программ, и, надеюсь, скоро будет создано больше, где можно будет использовать несколько ядер одновременно. Будущее программного обеспечения находится с этим « Параллельное программирование »:
источник
Я лично считаю, что количество ядер - это путь. Разработка программного обеспечения перешла на сетевые системы, поэтому местные ресурсы больше не являются единственными доступными вам ресурсами. Самый важный фактор в том, как вы работаете сейчас, это то, в какую сеть вы входите.
Обратите внимание на переход на широкополосную мобильную связь, постоянное подключение, удаленный доступ и т. Д. При этом постоянное подключение требует времени работы от батареи. Несмотря на то, что сомнительно, какие коэффициенты ЦП более оптимальны для времени автономной работы (у вас есть классическое уравнение оптимизации стоимости работы в зависимости от времени), я лично думаю, что если бы вам пришлось выбирать одно, я бы выбрал больше ядер.
Теперь Intel позволяет вам питать ядра по требованию. Хотя и не так оптимально, как отсутствие ядер для сна, возможность использовать больше ядер дает вам возможность запускать больше приложений на одной аппаратной платформе.
источник
Как ChrisF упоминает в комментарии, это зависит. Но поскольку такие ответы на самом деле не являются ответами, я постараюсь описать некоторые сценарии, в которых один будет более выгодным, чем другой:
В большинстве общих процессов, о которых вы упоминаете, количество ядер не будет иметь большого значения, так как большая часть работы выполняется в одном потоке, который может выполняться только на одном ядре (за один раз). Для таких процессов одно, но очень мощное ядро будет работать лучше, чем пара более медленных ядер. Исключением могут быть как шифрование, так и сжатие файлов, но это во многом зависит от того, какие алгоритмы используются и могут ли они выполняться параллельно.
Однако вы забыли одну из самых распространенных задач, выполняемых сегодня на компьютерах: просмотр страниц. Несколько популярных браузеров открывают каждую вкладку в отдельном процессе (я уверен, что это Chrome - единственный, который я использую), а это означает, что если в четырехъядерной системе открыто четыре вкладки, каждое окно просмотра может (теоретически) иметь ядро "для себя" (игнорируя потоки ОС и прочее), и работать так же быстро, как если бы не было других открытых вкладок / окон браузера. Для людей, которые одновременно открывают множество вкладок, это может стать серьезным улучшением производительности без необходимости создавать чрезвычайно быстрые ядра ЦП.
Ключ к пониманию того, будет ли многоядерная система с более медленными ядрами быстрее, чем одноядерная система с быстрым ядром, - это знание того, будете ли вы одновременно выполнять много разных вещей или несколько, но тяжелых . Как это будет сильно отличаться от пользователя к пользователю, так же будет и ответ на ваш вопрос.
Другие ответы также содержат пару важных моментов:
источник
Во-первых, одноядерные скорости на самом деле не так сильно упали. Единственная причина, по которой нынешняя линейка Intel Sandy Bridge не превосходит одноядерные Pentium 4 с точки зрения мегагерц, заключается в том, что у Intel нет конкуренции, поэтому им не приходится так сильно настаивать.
Во-вторых, тактовая частота - это еще не все, даже на одном ядре. Если посмотреть на производительность приложений, опять же, в сравнении с Pentium 4, текущая линейка Intel на 50% быстрее за такт . Причины, по которым Sandy Bridge работает быстрее за такт, чем Pentium 4 (Prescott был последним воплощением), многочисленны, но имеют интеллектуальный контроллер памяти с предварительной выборкой, контроллер памяти на том же кристалле с процессором и более высокий уровень параллелизма на уровне инструкций (ILP). способствовать этому.
Параллелизм на уровне команд в основном означает, что процессор просматривает инструкции и их зависимости, и если две инструкции не зависят друг от друга, ЦП может начать загрузку данных для обоих одновременно и, возможно, изменить порядок команд данных для одного из они прибывают раньше другого.
В-третьих, некоторые приложения действительно очень выигрывают от использования нескольких ядер. Например, Photoshop почти всегда предпочитает больше ядер, чем рабочая частота. То есть. даже медленный четырехъядерный процессор почти всегда превосходит любой двухъядерный чип, а любой двухъядерный - любой одноядерный. Трехъядерные процессоры - это смешанный пакет, они часто выигрывают у двухъядерных, но не всегда.
Обычно приложения, которые выполняют одни и те же операции для множества различных наборов данных, больше всего выигрывают от параллелизма. Например, сжатие видео или редактирование фотографий часто можно легко распараллелить. С другой стороны, компьютерные игры оказались трудно распараллелить. Графика на них, конечно, очень хорошо распараллеливается, но эта часть выполняется на GPU, а не на CPU. Остальная физика, бухгалтерия игрового мира и ИИ распараллеливаются не так легко.
источник
На самом деле сегодня самый важный фактор - это не тактовая частота процессора, появилось много новых функций, поскольку этот «фактор сравнения» пришел в негодность.
Сегодня вы должны взглянуть на многие факторы, чтобы сделать вывод о производительности процессоров. Вещи как:
На самом деле, когда я хочу сравнить скорости процессора, я обращаюсь к контрольным отметкам таблиц тестов ноутбука . Тесты, на мой взгляд, являются лучшим фактором для измерения и сравнения скорости процессора и производительности.
источник