Многоядрени процесори: повече винаги ли е по-добре?

click fraud protection

Добавяне на няколко ядра към едно процесор предлага значителни предимства благодарение на многозадачността на съвременните операционни системи. Въпреки това, за някои цели има горна практическа граница за това колко ядра дават подобрения спрямо разходите за добавянето им.

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

PAE-NX-SSE2-CPU-Windows
TobiasD / Pixabay

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

Когато първоначално бяха пуснати, производителите предлагаха само две ядра в един процесор, но сега има опции за четири, шест и дори 10 или повече. В допълнение към добавянето на ядра, едновременните многонишкови технологии – като Hyper-Threading на Intel – могат да удвоят виртуалните ядра, които

операционна система вижда.

Процеси и нишки

А процес е специфична задача, като програма, изпълнявана на компютър. Процесът се състои от една или повече нишки.

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

Предимството на наличието на множество ядра е, че системата може да обработва повече от една нишка едновременно. Всяко ядро ​​може да обработва отделен поток от данни. Тази архитектура значително увеличава производителността на система, която изпълнява едновременни приложения. Тъй като сървърите са склонни да изпълняват много едновременни приложения в даден момент, технологията първоначално е разработена за корпоративен клиент — но тъй като персоналните компютри станаха по-сложни и многозадачността се увеличи, те също се възползваха от това допълнителни ядра.

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

Софтуерна зависимост

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

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

Добър пример за обяснение на тази тенденция е да разгледаме типична компютърна игра. Повечето игри изискват някаква форма на машина за изобразяване, за да покаже какво се случва в играта. В допълнение, някакъв вид изкуствен интелект контролира събитията и героите в играта. С едно ядро ​​и двете задачи се изпълняват чрез превключване между тях. Този подход не е ефективен. Ако системата включваше множество процесори, изобразяването и AI биха могли да работят на отделно ядро ​​- идеална ситуация за многоядрен процесор.

8 > 4 > 2 ли е?

Преминаването отвъд две ядра носи смесени предимства, като се има предвид, че отговорът за всеки купувач на компютър зависи от софтуера, който той или тя обикновено използва. Например, много класически игри все още предлагат малка разлика в производителността между две и четири ядра. Дори съвременните игри – някои от които се твърди, че изискват или поддържат осем ядра – може да не работят по-добре от шестядрена машина с по-висока базова тактова честота, като се има предвид, че ефективността на първичната нишка управлява ефективността на многонишковите производителност.

От друга страна, програма за кодиране на видео, която прекодира видео, вероятно ще има огромни ползи като индивидуалното изобразяване на кадър може да бъде предадено на различни ядра и след това да се събере в един поток от софтуер. Така наличието на осем ядра ще бъде дори по-изгодно от четири. По същество първичната нишка не се нуждае от сравнително богати ресурси; вместо това може да прехвърли упоритата работа на дъщерните нишки, които максимизират ядрата на процесора.

Тактови скорости

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

В общи линии, по-високата тактова честота ще означава по-бърз процесор. Тактовите скорости стават по-мъгливи, когато вземете предвид скоростите спрямо множество ядра, тъй като процесорите обработват множество данни нишки благодарение на допълнителните ядра, но всяко от тези ядра ще работи с по-ниски скорости поради термичните ограничения.

Например, двуядрен процесор може да поддържа базова тактова честота от 3,5 GHz за всеки процесор, докато четириядрен процесор може работи само на 3.0 GHz. Само като погледнете едно ядро ​​на всеки от тях, двуядрен процесор е с 14 процента по-бърз, отколкото на четири ядрен. По този начин, ако имате програма, която е само еднонишкова, двуядрен процесор всъщност е по-ефективен. От друга страна, ако вашият софтуер може да използва и четирите процесора, тогава четириядрен процесор всъщност ще бъде около 70 процента по-бърз от този двуядрен процесор.

Заключения

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

Вижте нашите мисли за Колко бърз компютър ми трябва? за да получите по-добра представа кой тип процесор най-добре отговаря на вашите компютърни нужди.