Viacjadrových procesorov: Je viac vždy lepšie?
Pridanie niekoľkých jadier do jedného procesor ponúka významné výhody vďaka multitaskingovému charakteru moderných operačných systémov. Na niektoré účely však existuje horná praktická hranica toho, koľko jadier prináša zlepšenia v porovnaní s nákladmi na ich pridanie.
Viacjadrový technologický pokrok

K dispozícii sú viacjadrové procesory osobné počítače od začiatku roku 2000. Viacjadrové návrhy riešili problém procesorov narážajúcich na strop svojej fyzickej stránky obmedzenia z hľadiska ich rýchlosti hodín a toho, ako efektívne by sa dali chladiť a stále udržiavať presnosť. Prechodom na ďalšie jadrá na jednom procesorovom čipe sa výrobcovia vyhli problémom s rýchlosťou hodín efektívnym znásobením množstva dát, ktoré by mohli spracovať CPU.
Keď boli pôvodne vydané, výrobcovia ponúkali iba dve jadrá v jednom CPU, ale teraz existujú možnosti pre štyri, šesť a dokonca aj 10 alebo viac. Okrem pridávania jadier môžu technológie simultánneho multithreadingu – ako napríklad Intel Hyper-Threading – zdvojnásobiť virtuálne jadrá, ktoré operačný systém vidí.
Procesy a vlákna
A proces je špecifická úloha, napríklad program, ktorý beží na počítači. Proces pozostáva z jedného alebo viacerých vlákien.
A niť je jednoducho jeden tok údajov z programu prechádzajúci cez procesor v počítači. Každá aplikácia generuje svoje vlastné jedno alebo viacero vlákien v závislosti od toho, ako beží. Bez multitaskingu dokáže jednojadrový procesor naraz spracovať iba jedno vlákno, takže systém rýchlo prepína medzi vláknami a spracováva údaje zdanlivo súbežným spôsobom.
Výhodou viacerých jadier je, že systém dokáže spracovať viac ako jedno vlákno súčasne. Každé jadro dokáže spracovať samostatný tok údajov. Táto architektúra výrazne zvyšuje výkon systému, na ktorom sú spustené súbežné aplikácie. Keďže servery majú tendenciu spúšťať veľa súbežných aplikácií v danom čase, táto technológia bola pôvodne vyvinutá pre podnikový zákazník – ale keďže osobné počítače boli čoraz zložitejšie a multitasking narastal, profitovali z toho aj oni extra jadrá.
Každý proces je však riadený primárnym vláknom, ktoré môže zaberať iba jedno jadro. Relatívna rýchlosť programu, ako je hra alebo video renderer, je teda pevne obmedzená schopnosťou jadra, ktoré spotrebuje primárne vlákno. Primárne vlákno môže absolútne delegovať sekundárne vlákna na iné jadrá – ale hra nebude dvakrát rýchlejšia, keď zdvojnásobíte jadrá. Nie je teda nezvyčajné, že hra plne maximalizuje jedno jadro (primárne vlákno), ale vidí len čiastočné využitie iných jadier pre sekundárne vlákna. Žiadne zdvojnásobenie jadra neobíde skutočnosť, že primárne jadro je pre vás obmedzovačom rýchlosti aplikácie a aplikácie, ktoré sú citlivé na túto architektúru, budú fungovať lepšie ako aplikácie, ktoré nie sú.
Softvérová závislosť
Hoci koncept viacjadrových procesorov znie lákavo, táto technológia má jednu veľkú výhradu. Aby ste mohli využívať skutočné výhody viacerých procesorov, softvér bežiaci na počítači musí byť napísaný tak, aby podporoval viacvláknové spracovanie. Bez softvéru, ktorý takúto funkciu podporuje, budú vlákna primárne bežať cez jedno jadro, čím sa zníži celková efektivita počítača. Koniec koncov, ak môže bežať iba na jednom jadre v štvorjadrovom procesore, môže byť v skutočnosti rýchlejšie spustiť ho na dvojjadrovom procesore s vyššími základnými taktmi.
Všetky hlavné súčasné operačné systémy podporujú schopnosť multithreadingu. Multithreading však musí byť zapísaný aj do aplikačného softvéru. Podpora pre multithreading v spotrebiteľskom softvéri sa v priebehu rokov zlepšila, no pre mnohých je jednoduchá programy, podpora multithreadingu stále nie je implementovaná kvôli zložitosti softvéru stavať. Napríklad poštový program alebo webový prehliadač pravdepodobne neuvidí obrovské výhody multithreadingu ako grafický program alebo program na úpravu videa, kde počítač spracováva zložité výpočty.
Dobrým príkladom na vysvetlenie tejto tendencie je pozrieť sa na typickú počítačovú hru. Väčšina hier vyžaduje nejakú formu vykresľovacieho enginu na zobrazenie toho, čo sa deje v hre. Akási umelá inteligencia navyše riadi udalosti a postavy v hre. Pri jednom jadre sa obe úlohy vykonávajú prepínaním medzi nimi. Tento prístup nie je efektívny. Ak by systém obsahoval viacero procesorov, vykresľovanie a AI by mohli bežať na samostatnom jadre – ideálna situácia pre viacjadrový procesor.
Je 8 > 4 > 2?
Prekročenie dvoch jadier predstavuje zmiešané výhody vzhľadom na to, že odpoveď pre každého kupujúceho počítača závisí od softvéru, ktorý zvyčajne používa. Napríklad veľa klasických hier stále ponúka malý výkonnostný rozdiel medzi dvoma a štyrmi jadrami. Dokonca aj moderné hry – z ktorých niektoré údajne vyžadujú alebo podporujú osem jadier – nemusia fungovať lepšie ako šesťjadrový stroj s vyššia rýchlosť základných hodín, vzhľadom na to, že účinnosť primárneho vlákna riadi efektivitu viacvláknového výkon.
Na druhej strane program na kódovanie videa, ktorý prekóduje video, pravdepodobne uvidí obrovské výhody jednotlivé vykresľovanie snímok možno odovzdať rôznym jadrám a potom ich zoradiť do jedného prúdu softvér. Takže osem jadier bude ešte výhodnejšie ako štyri. Primárne vlákno v podstate nepotrebuje porovnateľne bohaté zdroje; namiesto toho môže preniesť ťažkú prácu na dcérske vlákna, ktoré maximálne využívajú jadrá procesora.
Rýchlosti hodín

Vo všeobecnosti platí, že vyššia rýchlosť bude znamenať rýchlejší procesor. Frekvencia hodín je hmlistejšia, keď vezmete do úvahy rýchlosti vo vzťahu k viacerým jadrám, pretože procesory stláčajú viacero údajov vlákna vďaka dodatočným jadrám, ale každé z týchto jadier bude bežať pri nižších rýchlostiach z dôvodu tepelných obmedzení.
Napríklad dvojjadrový procesor môže podporovať základnú frekvenciu 3,5 GHz pre každý procesor, zatiaľ čo štvorjadrový procesor môže bežať iba na 3,0 GHz. Len pri pohľade na jedno jadro na každom z nich je dvojjadrový procesor o 14 percent rýchlejší ako na ňom štvor-jadrový. Ak teda máte program, ktorý je iba jednovláknový, dvojjadrový procesor je v skutočnosti efektívnejší. Potom znova, ak váš softvér môže používať všetky štyri procesory, potom bude štvorjadrový procesor v skutočnosti asi o 70 percent rýchlejší ako dvojjadrový procesor.
Závery
Z väčšej časti je vo všeobecnosti lepšie mať procesor s vyšším počtom jadier softvér a typické prípady použitia to podporujú. Pre bežného používateľa počítača bude väčšinou dvojjadrový alebo štvorjadrový procesor viac než dostatočný výkon. Väčšina spotrebiteľov neuvidí žiadne hmatateľné výhody z prekročenia štyroch procesorových jadier, pretože ich využíva tak málo nešpecializovaného softvéru. Najlepší prípad použitia procesorov s vysokým počtom jadier sa týka strojov, ktoré vykonávajú zložité úlohy, ako je úprava videa na počítači, niektoré formy špičkových hier alebo komplikované vedecké a matematické programy.
Pozrite si naše myšlienky o Aký rýchly počítač potrebujem? aby ste získali lepšiu predstavu o tom, aký typ procesora najlepšie vyhovuje vašim výpočtovým potrebám.