Интернет. Железо. Программы. Обзоры. Операционные системы

Четырехъядерный компьютер. Двухъядерный или четырехъядерный процессор – в чем разница

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

Что такое многоядерный процессор?

Чаще всего под многоядерными процессорами понимают центральные процессоры, в которых несколько вычислительных ядер интегрированы в одну микросхему (то есть они расположены на одном кристалле кремния).

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

Hyper-threading

Ядра в многоядерных процессорах могут поддерживать технологию SMT, позволяющую исполнять несколько потоков вычислений и создавать на основе каждого ядра несколько логических процессоров. На процессорах, которые выпускает компания Intel, такая технология называется «Hyper-threading». Благодаря ей можно удваивать число логических процессоров по сравнению с числом физических чипов. В микропроцессорах, поддерживающих эту технологию, каждый физический процессор способен сохранять состояние двух потоков одновременно. Для операционной системы это будет выглядеть, как наличие двух логических процессоров. Если в работе одного из них возникает пауза (например, он ждет получения данных из памяти), другой логический процессор приступает к выполнению собственного потока.

Виды многоядерных процессоров

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

Принцип работы

Большинство современных многоядерных процессоров работает по следующей схеме. Если запущенное приложение поддерживает многопоточность, оно может заставлять процессор выполнять несколько заданий одновременно. Например, если в компьютере используется 4-ядерный процессор с тактовой частотой 1.8 ГГц, программа может «загрузить» работой сразу все четыре ядра, при этом суммарная частота процессора будет составлять 7.2 ГГц. Если запущено сразу несколько программ, каждая из них может использовать часть ядер процессора, что тоже приводит к росту производительности компьютера.

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

В первые годы нового тысячелетия, когда частоты CPU, наконец, прошли отметку 1 ГГц, некоторые компании (не будем показывать пальцем на Intel) предсказывали, что новая архитектура NetBurst сможет в будущем достичь частот порядка 10 ГГц. Энтузиасты ожидали наступление новой эры, когда тактовые частоты CPU будут расти подобно грибам после дождя. Нужно больше производительности? Просто перейдите на процессор с большей тактовой частотой.

Яблоко Ньютона громко упало на головы мечтателей, которые рассматривали мегагерцы как самый лёгкий способ продолжения роста производительности ПК. Физические ограничения не позволили экспоненциально увеличивать тактовую частоту без соответствующего роста тепловыделения, да и другие проблемы, связанные с технологиями производства, тоже стали возникать. Действительно, последние годы самые быстрые процессоры работают на частотах от 3 до 4 ГГц.

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

Pentium EE 840 - первый двуядерный CPU, появившийся в рознице.

Основная проблема с параллелизмом заключается в том, что программное обеспечение должно быть специально написано так, чтобы распределять нагрузку по нескольким потокам - то есть вы не получите немедленной отдачи от вложенных денег, в отличие от таковой частоты. В 2005 году, когда вышли первые двуядерные процессоры, они не обеспечивали серьёзного прироста производительности, поскольку на настольных ПК использовалось довольно мало программного обеспечения, которое бы их поддерживало. Фактически, большая часть двуядерных CPU была медленнее одноядерных процессоров в большинстве задач, поскольку одноядерные CPU работали на более высоких тактовых частотах.

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

Но возникает вопрос: сколько ядер CPU нужно на самом деле? Достаточно ли для игр трёхъядерного процессора, или лучше доплатить и взять четырёхъядерный чип? Достаточно ли для обычного пользователя двуядерного процессора, или большее число ядер действительно даёт какую-либо разницу? Какие приложения оптимизированы под несколько ядер, а какие будут реагировать на изменение только таких спецификаций, как частота или размер кэша?

Мы посчитали, что настало хорошее время провести тесты приложений из обновлённого пакета (впрочем, обновление ещё не закончено) на одно-, двух-, трёх- и четырёхъядерных конфигурациях, чтобы понять, насколько ценными стали многоядерные процессоры в 2009 году.

Чтобы тесты были справедливыми, мы выбрали четырёхъядерный процессор - разогнанный до 2,7 ГГц Intel Core 2 Quad Q6600. После проведения тестов на нашей системе, мы затем отключили одно из ядер, перезагрузились, и повторили тесты. Мы последовательно отключали ядра и получили результаты для разного количества активных ядер (от одного до четырёх), при этом процессор и его частота не менялись.

Отключение ядер CPU под Windows выполнить очень легко. Если вы хотите узнать, как это сделать, то наберите "msconfig" в окне Windows Vista "Начать поиск/Start Search" и нажмите "Enter". Это откроет утилиту "Конфигурация системы".

В ней перейдите на закладку "Загрузка/Boot" и нажмите клавишу "Дополнительные параметры/Advanced options".

Это приведёт к появлению окна "Дополнительные параметры загрузки/BOOT Advanced Options". Выберите галочку "Число процессоров/Number of Processors" и укажите нужно число ядер процессора, которые будут активны в системе. Всё очень просто.

После подтверждения программа предложит перезагрузиться. После перезагрузки в "Диспетчере задач Windows" (Task Manager) можно увидеть число активных ядер. Вызов "Диспетчера задач" выполняется нажатием клавиш Crtl+Shift+Esc.

Выберите в "Диспетчере задач" вкладку "Быстродействие/Performance". В ней вы сможете увидеть графики нагрузки для каждого процессора/ядра (будь это отдельный процессор/ядро или виртуальный процессор, как мы получаем в случае Core i7 с активной поддержкой Hyper-Threading) в пункте "Хронология загрузки ЦП/CPU Usage History". Два графика означают два активных ядра, три - три активных ядра и т.д.

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

Тестовая конфигурация

Системное аппаратное обеспечение
Процессор Intel Core 2 Quad Q6600 (Kentsfield), 2,7 ГГц, FSB-1200, 8 Мбайт кэша L2
Платформа MSI P7N SLI Platinum, Nvidia nForce 750i, BIOS A2
Память A-Data EXTREME DDR2 800+, 2 x 2048 Мбайт, DDR2-800, CL 5-5-5-18 на 1,8 В
Жёсткий диск Western Digital Caviar WD50 00AAJS-00YFA, 500 Гбайт, 7200 об/мин, кэш 8 Мбайт, SATA 3,0 Гбит/с
Сеть Встроенный контроллер nForce 750i Gigabit Ethernet
Видеокарты Gigabyte GV-N250ZL-1GI 1 GB DDR3 PCIe
Блок питания Ultra HE1000X, ATX 2.2, 1000 Вт
Программное обеспечение и драйверы
Операционная система Microsoft Windows Vista Ultimate 64-bit 6.0.6001, SP1
Версия DirectX DirectX 10
Драйвер платформы nForce Driver Version 15.25
Графический драйвер Nvidia Forceware 182.50

Тесты и настройки

3D-игры
Crysis Quality settings set to lowest, Object Detail to High, Physics to Very High, version 1.2.1, 1024x768, Benchmark tool, 3-run average
Left 4 Dead Quality settings set to lowest, 1024x768, version 1.0.1.1, timed demo.
World in Conflict Quality settings set to lowest, 1024x768, Patch 1.009, Built-in benchmark.
iTunes Version: 8.1.0.52, Audio CD ("Terminator II" SE), 53 min., Default format AAC
Lame MP3 Version: 3.98 (64-bit), Audio CD ""Terminator II" SE, 53 min, wave to MP3, 160 Kb/s
TMPEG 4.6 Version: 4.6.3.268, Import File: "Terminator II" SE DVD (5 Minutes), Resolution: 720x576 (PAL) 16:9
DivX 6.8.5 Encoding mode: Insane Quality, Enhanced Multi-Threading, Enabled using SSE4, Quarter-pixel search
XviD 1.2.1 Display encoding status=off
MainConcept Reference 1.6.1 MPEG2 to MPEG2 (H.264), MainConcept H.264/AVC Codec, 28 sec HDTV 1920x1080 (MPEG2), Audio: MPEG2 (44.1 KHz, 2 Channel, 16-Bit, 224 Kb/s), Mode: PAL (25 FPS), Profile: Tom"s Hardware Settings for Qct-Core
Autodesk 3D Studio Max 2009 (64-bit) Version: 2009, Rendering Dragon Image at 1920x1080 (HDTV)
Adobe Photoshop CS3 Version: 10.0x20070321, Filtering from a 69 MB TIF-Photo, Benchmark: Tomshardware-Benchmark V1.0.0.4, Filters: Crosshatch, Glass, Sumi-e, Accented Edges, Angled Strokes, Sprayed Strokes
Grisoft AVG Antivirus 8 Version: 8.0.134, Virus base: 270.4.5/1533, Benchmark: Scan 334 MB Folder of ZIP/RAR compressed files
WinRAR 3.80 Version 3.80, Benchmark: THG-Workload (334 MB)
WinZip 12 Version 12, Compression=Best, Benchmark: THG-Workload (334 MB)
3DMark Vantage Version: 1.02, GPU and CPU scores
PCMark Vantage Version: 1.00, System, Memory, Hard Disk Drive benchmarks, Windows Media Player 10.00.00.3646
SiSoftware Sandra 2009 SP3 CPU Test=CPU Arithmetic/MultiMedia, Memory Test=Bandwidth Benchmark

Результаты тестов

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

Мы начнём с синтетического теста игровой производительности 3DMark Vantage. Мы выбрали прогон "Entry", который 3DMark выполняет на самом низком доступном разрешении, чтобы производительность CPU сильнее влияла на результат.

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

Результаты PCMark заставляют предположить, что конечный пользователь выиграет от увеличения количества ядер CPU вплоть до трёх, а четвёртое ядро, наоборот, немного снизит производительность. Давайте посмотрим, с чем связан подобный результат.

В тесте подсистемы памяти мы вновь наблюдаем самый большой прирост производительности при переходе от одного ядра CPU к двум.

Тест продуктивности, как нам кажется, сильнее всего влияет на общий результат теста PCMark, поскольку в данном случае рост производительности заканчивается на трёх ядрах. Давайте посмотрим, будут ли аналогичны результаты другого синтетического теста SiSoft Sandra.

Мы начнём с арифметических и мультимедийных тестов SiSoft Sandra.


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

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

После синтетических тестов настало время посмотреть, что мы получим в тестах приложений.

Кодирование аудио традиционно являлось сегментом, приложения в котором не очень сильно выигрывали от нескольких ядер, либо они не были оптимизированы разработчиками. Ниже приведены результаты Lame и iTunes.

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

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

Получается, ни Lame, ни iTunes не оптимизированы под несколько ядер CPU для кодирования аудио. С другой стороны, насколько мы знаем, программы кодирования видео часто очень сильно оптимизируют под несколько ядер из-за их изначально параллельной природы. Давайте посмотрим на результаты кодирования видео.

Мы начнём тесты кодирования видео с MainConcept Reference.

Обратите внимание, насколько сильно на результат влияет увеличение числа ядер: время кодирования уменьшается с девяти минут на одноядерном 2,7-ГГц процессоре Core 2 до всего двух минут и 30 секунд, когда активны все четыре ядра. Вполне понятно, что если вы часто перекодируете видео, то лучше брать процессор с четырьмя ядрами.

Получим ли мы схожие преимущества в тестах TMPGEnc?

Здесь можно видеть влияние на результат кодера. Если кодер DivX высоко оптимизирован под несколько ядер CPU, то Xvid не демонстрирует такого заметного преимущества. Впрочем, даже Xvid даёт снижение времени кодирования на 25% при переходе от одного ядра к двум.

Начнём графические тесты с Adobe Photoshop.

Как видим, версия CS3 не замечает добавление ядер. Странный результат для столь популярной программы, хотя мы признаём, что не использовали последнюю версию Photoshop CS4. Результаты CS3 всё равно не вдохновляют.

Давайте посмотрим на результаты 3D-рендеринга в Autodesk 3ds Max.

Вполне очевидно, что Autodesk 3ds Max "любит" дополнительные ядра. Данная особенность присутствовала в 3ds Max ещё во время работы этой программы в DOS-окружении, поскольку задача 3D-рендеринга выполнялась столь долго, что было необходимо распределять её по нескольким компьютерам в сети. Опять же, для подобных программ весьма желательно использовать четырёхъядерные процессоры.

Тест антивирусного сканирования очень близок к реальным жизненным условиям, поскольку почти все используют антивирусы.

Антивирус AVG демонстрирует чудесный прирост производительности при увеличении ядер CPU. Во время антивирусного сканирования производительность компьютера может очень сильно падать, и результаты наглядно показывают, что несколько ядер существенно сокращают время сканирования.


WinZip и WinRAR не дают заметного прироста на нескольких ядрах. WinRAR демонстрирует прирост производительности на двух ядрах, но не более того. Интересно будет посмотреть, как себя покажет только что вышедшая версия 3.90.

В 2005 году, когда стали появляться настольные компьютеры с двумя ядрами, просто не существовало игр, которые демонстрировали бы прирост производительности при переходе от одноядерных CPU на многоядерные процессоры. Но времена изменились. Как сказываются несколько ядер CPU на современных играх? Давайте запустим несколько популярных игр и посмотрим. Мы проводили игровые тесты в низком разрешении 1024x768 и с низким уровнем графических деталей, чтобы минимизировать влияние видеокарты и определить, насколько сильно данные игры упираются в производительность CPU.

Начнём с Crysis. Мы снизили до минимума все опции за исключением детализации объектов, которую мы выставили в "High", а также Physics, которую мы установили в "Very High". В итоге производительность игры должна сильнее зависеть от CPU.

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

Но мы знаем, что Crysis серьёзно использует расчёты физики, поэтому давайте посмотрим, каковая будет ситуация в игре не с такой продвинутой физикой. Например, в Left 4 Dead.

Что интересно, игра Left 4 Dead демонстрирует схожий результат, хотя львиная доля прироста производительности появляется после добавления второго ядра. Есть небольшой прирост при переходе на три ядра, но вот четвёртое ядро этой игре не требуется. Интересная тенденция. Посмотрим, насколько она будет характерна для стратегии реального времени World in Conflict.

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

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

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

В приложениях мы наблюдаем более реалистичный прогресс - около 35% прироста от второго ядра CPU, 15% прирост от третьего и 32% прирост от четвёртого. Странно, что при добавлении третьего ядра мы получаем только половину преимущества, которое даёт четвёртое ядро.

В приложениях, впрочем, лучше смотреть на отдельные программы, а не на общий результат. Действительно, приложения кодирования аудио, например, вообще не выигрывают от увеличения числа ядер. С другой стороны, приложения кодирования видео дают серьёзные преимущества от большего числа ядер CPU, хотя всё довольно сильно зависит от используемого кодера. В случае программы 3D-рендеринга 3ds Max мы видим, что она серьёзно оптимизирована под многоядерные окружения, а приложения редактирования 2D-фотографий, подобные Photoshop, не реагируют на количество ядер. Антивирус AVG показал серьёзное увеличение производительности на нескольких ядрах, а на утилитах сжатия файлов выигрыш не такой большой.

Что же касается игр, то при переходе от одного ядра на два производительность увеличивается на 60%, а после добавления в систему третьего ядра мы получаем ещё 25% отрыв. Четвёртое ядро в выбранных нами играх не даёт преимуществ. Конечно, если бы мы взяли больше игр, то ситуация могла бы измениться, но, в любом случае, трёхъядерные процессоры Phenom II X3 кажутся весьма привлекательным и недорогим выбором для геймера. Важно отметить, что при переходе на более высокие разрешения и добавлении визуальных деталей, разница из-за количества ядер будет меньшей, поскольку видеокарта станет решающим фактором, влияющим на частоту кадров.


Четыре ядра.

С учётом всего сказанного и сделанного, можно подвести ряд итогов. В целом, вам не нужно быть каким-либо профессиональным пользователем, чтобы выиграть от установки многоядерного CPU. Ситуация существенно изменилась по сравнению с тем, что было четыре года назад. Конечно, разница кажется не такой существенной на первый взгляд, но довольно интересно отметить, насколько сильно приложения стали оптимизироваться под многопоточность в последние несколько лет, особенно те программы, которые от этой оптимизации могут дать существенный прирост производительности. Фактически, можно сказать, что сегодня уже нет смысла рекомендовать одноядерные CPU (если вы такие ещё найдёте), за исключением решений с низким энергопотреблением.

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

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

Двухъядерный или четырехъядерный, как можно проще

Давайте сделаем все просто. Вот все, что вам нужно знать:

  • Существует только один процессорный чип. У этого чипа может быть одно, два, четыре, шесть или восемь ядер.
  • В настоящее время 18-ядерный процессор - это лучшее, что можно получить на потребительских ПК.
  • Каждое «ядро» является частью чипа, который выполняет обработку. По сути, каждое ядро является центральным процессором (CPU).

Скорость

Теперь простая логика диктует, что больше ядер сделает ваш процессор быстрее в целом. Но это не всегда так. Это немного сложнее.

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

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

Потребляемая мощность

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

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

Выделение тепла

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

Из-за этого дополнительного тепла, производители должны добавить лучшие радиаторы или другие решения для охлаждения.

Цена

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

Но если все остальные факторы одинаковы, тогда больше ядер будет получать более высокую цену.

Все о программном обеспечении

Вот маленький секрет, который производители процессоров не хотят, чтобы вы знали. Речь идет не о том, сколько ядер вы используете, а о том, какое программное обеспечение вы используете на них.

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

Важно отметить, что даже если это многопоточная программа, также важно то, для чего она используется. Например, веб-браузер Google Chrome поддерживает несколько процессов, а также программное обеспечение для редактирования видео Adobe Premier Pro.

Adobe Premier Pro предлагает различные ядра для работы над различными аспектами вашего редактирования. Учитывая многие слои, связанные с редактированием видео, это имеет смысл, так как каждое ядро может работать над отдельной задачей.

Аналогично, Google Chrome предлагает разным ядрам работать на разных вкладках. Но в этом и заключается проблема. После того как вы откроете веб-страницу на вкладке, она обычно статична после этого. Нет необходимости в дальнейшей обработке; остальная часть работы заключается в сохранении страницы в ОЗУ. Это означает, что даже если ядро можно использовать для закладки фона, в этом нет никакой необходимости.

Этот пример Google Chrome представляет собой иллюстрацию того, как даже многопоточное программное обеспечение может не дать вам большой реальный прирост производительности.

Два ядра не удваивают скорость

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

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

В действительности задачи разбиваются последовательно (что делает большинство многопоточных программ) или случайным образом. Например, скажем, вам нужно выполнить три задачи, чтобы закончить действие, и у вас есть пять таких действий. Программное обеспечение сообщает ядру 1 решить задачу 1, в то время как ядро 2 решает вторую, ядро 3 третью; между тем, ядро 4 простаивает.

Если третья задача самая сложная и длинная, тогда было бы разумно, чтобы программное обеспечение разделило третью задачу между ядрами 3 и 4. Но это не то, что она делает. Вместо этого, хотя ядро 1 и 2 выполнят задачу быстрее, действие должно будет дождаться завершения ядра 3, а затем вычислить результаты ядер 1, 2 и 3 вместе.

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

Где больше ядер реально помогут?

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

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

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

Фотошоп и дизайн

Если вы дизайнер, то более высокая тактовая частота и больше кэш-памяти процессора будут увеличиваться скорость лучше, чем больше ядер. Даже самое популярное программное обеспечение для проектирования, Adobe Photoshop, в значительной степени поддерживает однопоточные или слегка поточные процессы. Множество ядер не будет значительным стимулом для этого.

Более быстрый веб-просмотр

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

Офисные задачи

Все основные приложения Office однопоточные, поэтому четырехъядерный процессор не будет увеличивать скорость.

Нужно ли вам больше ядер?

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

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

Одним из этапов совершенствования архитектуры фон Неймана является распараллеливание потоков (Thread Level Parallelism , TLP ). Различают одновременную многопоточность (Simultaneous Multithreading , SMT ) и многопоточность на уровне кристалла (Chip - level Multithreading , CMT ). Эти два подхода в основном различаются представлением о том, что такое поток. Типичным представителем SMT является так называемая технология HTT (Hyper - Threading Technology ).

Первыми представителями архитектурыCMP стали процессоры, предназначенные для использования в серверах. Это был простой тандем, в таких приборах на одной подложке размещались два, по сути, независимых ядра (Рис.8,). Развитием этой схемы сначала стала структура с общей кэш – памятью рис. 9, а затем структура с многпоточностью в каждом ядре.

Преимущества многоядерных процессоров состоят в следующем.

    Простота (естественно относительная) проектирования и производства. Разработав одно эффективное ядро, его можно тиражировать в кристалле, дополняя архитектуру нужными системными компонентами.

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

В целом же, если внимательно посмотреть на рисунки 8 и 9, можно увидеть, что принципиальной разницы между, скажем, 2-х процессорной системой и ЭВМ на 2-х ядерном процессоре нет. Проблемы одинаковые. И одна из первых – соответствующая операционная система.

Способы организации работы процессоров

Главным стимулом развития архитектуры ЭВМ является повышение производительности. Один из способов повышения производительности ЭВМ - специализация (как отдельных элементов ЭВМ, так и создание специализированных вычислительных систем).

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

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

Простейшим примером параллелизма данных является последовательность из двух команд: А=В+С; D=E*F;

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

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

Существует несколько достаточно близких по смыслу классификаций программного параллелизма, из которых наиболее признанной считается классификация по шести уровням (Рис.10). Три верхних уровня параллелизма занимают крупные программные объекты - независимые задания, программы и процедуры программы. Несвязанные операторы, циклы и операции образуют нижние уровни параллелизма. Если совместить такое ранжирование с категориями М. Флина «параллельные потоки команд» и «параллельные потоки данных», то видно, что параллелизм верхнего уровня в основном достигается за счет множества независимых потоков команд, а параллелизм нижнего уровня обязан своим существованием главным образом несвязанным потокам данных.

Конвейерная обработка и конвейерные структуры

Одним из эффективных способов повышения производительности ЭВМ является конвейеризация. На рис. 11а) показана обработка в одиночном универсальном блоке, а на рис.11 б) и в) – в конвейере. Идея конвейерной обработки заключается в разбиении функции, реализуемой универсальным функциональным блоком (ФБ), между несколькими, специализированными. Все функциональные блоки конвейера должны работать с одинаковой скоростью (хотя бы в среднем). На практике последнего добиться удается редко и, как следствие, производительность конвейера снижается, поскольку период поступления входных данных определяется максимальным временем их обработки в каждом функциональном блоке. Для компенсации флуктуаций времени работы ФБ между ними включают буферные регистры. Более универсальным приёмом является включение буферных запоминающих устройств типа FIFO (рис 11 в ). Следует обратить внимание на ещё одно различие между рисунками б) и в) . В структуре в) отсутствует линия синхронизации СИ. Это не значит, что её не может быть в подобной структуре, просто существует два типа конвейеров: синхронные с общей линией синхронизации и асинхронные , без таковой. Первые ещё называют с управлением командами , а вторые – с управлением данными . Примером асинхронных конвейеров могут служить систолические массивы.

Конвейер не всегда представляет собой линейную цепочку блоков. Иногда оказывается выгодным, функциональные блоки соединят между собой не последовательно, а по более сложной схеме в соответствии с логикой обработки, при этом одни блоки в цепочке могут пропускаться, а другие – образовывать циклические структуры. Структура нелинейного конвейера, способного вычислять две функции X и Y, и диаграммы, в которой функциями X и Y востребуются те или иные функциональные блоки приведена на рис. 12

Добрый день, уважаемые читатели нашего техноблога. Сегодня у нас не обзор, а некое подобие сравнения какой процессор лучше 2 ядерный или 4 ядерный? Интересно, кто круче себя показывает в 2018 году? Тогда приступим. Сразу скажем, что пальма первенства в большинстве случаев будет за устройством с большим числом физических модулей, но и чипы с 2 ядрами не так просты, как кажутся на первый взгляд.

Многие, наверное уже догадались, что рассматривать мы будем всех текущих представителей от Intel семейства Pentium Coffee Lake и народный «гиперпень» G4560 (Kaby Lake). Насколько модели актуальны в текущем году и стоит ли задуматься о покупке более производительных AMD Ryzen или тех же Core i3 с 4‐мя ядрами.

Семейство AMD Godavari и Bristol Ridge намеренно не рассматривается по одной простой причине – оно не имеет никакого дальнейшего потенциала, да и сама платформа оказалась не самой удачной, как могло предполагаться.

Зачастую эти решения покупаются либо по незнанию, либо «на сдачу» в качестве какой‐нибудь максимально дешевой сборки для интернета и онлайн‐фильмов. Но нас такое положение вещей особо не устраивает.

Отличия 2‐ядерных чипов от 4‐ядерных

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

Зачастую кэш L1 каждого ядра – величина индивидуальная, а вот L2 может быть либо един для всех, либо также индивидуален для каждого блока. Однако в таком случае дополнительно используется уже кэш‐память L3.

В теории 4‐ядерные решения должны быть быстрее и мощнее в 2 раза, поскольку выполняют на 100% больше операций за такт (возьмем за основу идентичную частоту, кэш, техпроцесс и все прочие параметры). Но на практике ситуация меняется совершенно нелинейно.

Но здесь стоит отдать должное: в многопотоке вся сущность 4 ядер раскрывается в полной мере.

Почему 2‐ядерные процессоры все еще популярны?

Если взглянуть на мобильный сегмент электроники, то можно заметить засилье 6–8 ядерных чипов, которые выглядят максимально органично и нагружаются параллельно при выполнении всех задач. Почему так? ОС Android и iOS – довольно молодые системы с высоким уровнем конкуренции, а потому оптимизация каждого приложения – залог успеха продаж девайсов.

С индустрией ПК ситуация иная и вот почему:

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

Распараллеливание задач. Несмотря на засилье технологий в 2018 году, заставить программу работать с несколькими ядрами и потоками ЦП параллельно все еще не просто. Если речь заходит за просчет нескольких совершенно разных приложений, то вопросов нет, но когда дело касается вычислений внутри одной программы – тут уже хуже: приходится регулярно просчитывать абсолютно разную информацию, при этом не забывая об успехе задач и отсутствии ошибок при вычислениях.

В играх ситуация еще более интересная, поскольку объемы информации разделить на равные «доли» практически нереально. В итоге получаем следующую картину: один вычислительный блок маслает на 100%, остальные 3 – ждут своей очереди.

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

Взять к примеру многие культовые проекты вроде Lineage 2, AION, World of Tanks. Все они создавались на базе древних движков, которые способны адекватно нагрузить лишь одно физическое ядро, а потому здесь основную роль при вычислениях играет только частота чипа.
Финансирование. Далеко не все могут позволить себе создать совершенно новый продукт, рассчитанный не 4,8, 16 потоков. Это слишком дорого, да и в большинстве случаев неоправданно. Взять к примеру ту же культовую GTA V, которая без проблем «съест» и 12 и 16 потоков, не говоря уже о ядрах.

Стоимость ее разработки перевалила за добрые 200 млн долларов, что само по себе уже очень дорого. Да, игра оказалась успешной, поскольку кредит доверия Rockstar в среде игроков был огромен. А если бы это был молодой стартап? Тут уже сами все понимаете.

Нужны ли многоядерные процессоры?

Давайте рассмотрим ситуацию с точки зрения простого обывателя. Большинству пользователей хватает 2 ядер по следующим причинам:

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

Можно ли играть на 2 ядрах? Да без проблем, что с успехом несколько лет доказывала линейка Intel Core i3 вплоть до 7‐го поколения. Также огромной популярностью пользовались Pentium Kaby Lake, в которые впервые в истории внедрили поддержку Hyper Threading.
Стоит ли сейчас покупать 2 ядра, пусть и с 4‐мя потоками? Исключительно для офисных задач. Эпоха данных чипов постепенно уходит, да и производители начали массово переключаться на 4 полноценных физических ядра, а потому не стоит рассматривать те же Pentium и Core i3 Kaby Lake в долгосрочной перспективе. AMD так и вовсе отказалась от 2‐ядерников.

Похожие публикации