Многоядерные процессоры: лучше всегда?

Наличие нескольких ядер в одном процессоре всегда имело ощутимые преимущества благодаря многозадачности современных операционных систем. В конце концов, вы можете просматривать веб-страницы или вводить отчет, когда антивирусная программа работает в фоновом режиме. Реальный вопрос для многих людей может заключаться в том, действительно ли полезно иметь больше двух человек, и если да, то сколько?

Многоядерные технологии

PAE-NX-SSE2-CPU-Windows
Фото © Pixabay

Многоядерные процессоры были доступны в персональных компьютерах с конца 1990-х годов. Многоядерные конструкции решали проблему, когда процессоры достигли предела своих физических ограничений с точки зрения тактовых частот и того, насколько эффективно они могут охлаждаться и при этом сохранять точность. Переходя к дополнительным ядрам на одном процессоре, производители избегали проблем с тактовой частотой, эффективно увеличивая объем данных, которые могут обрабатываться процессором.

Когда они изначально были выпущены, это было всего два ядра в одном процессоре, но теперь есть варианты для четырех, шести и даже 10 или более. Помимо добавления ядер, технология Intel Hyper-Threading удваивает виртуальные ядра, которые видит операционная система.

Процессы и потоки

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

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

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

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

Зависимость от программного обеспечения

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

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

Хороший пример для объяснения этой тенденции — взглянуть на типичную компьютерную игру. Большинство игр требуют какой-либо формы движка рендеринга для отображения происходящего в игре. Кроме того, какой-то искусственный интеллект контролирует события и персонажей в игре. В одном ядре обе задачи выполняются путем переключения между ними. Этот подход не эффективен. Если бы в системе было несколько процессоров, то рендеринг и AI могли бы работать на отдельном ядре — идеальная ситуация для многоядерного процессора.

8> 4> 2?

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

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

Тактовые частоты

Диспетчер задач, показывающий использование процессора

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

Например, двухъядерный процессор может поддерживать базовые тактовые частоты 3,5 ГГц для каждого процессора, тогда как четырехъядерный процессор может работать только на частоте 3,0 ГГц. Если взглянуть на одно ядро ​​каждого из них, двухъядерный процессор сможет работать примерно на 14 процентов быстрее, чем на четырехъядерном. Таким образом, если у вас есть программа, которая является только однопоточным, двухъядерный процессор на самом деле более эффективен. Опять же, если ваше программное обеспечение может использовать все четыре процессора, тогда четырехъядерный процессор будет на 70 процентов быстрее, чем этот двухъядерный процессор.

Выводы

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

Проверьте наши мысли о том, как быстро ПК мне нужно? чтобы лучше понять, какой тип процессора лучше всего соответствует вашим вычислительным потребностям.

Ссылка на основную публикацию