Přidání několika jader k jednomu procesoru nabízí značné výhody díky multitaskingové povaze moderních operačních systémů. Pro některé účely však existuje horní praktický limit toho, kolik jader přináší vylepšení v poměru k nákladům na jejich přidání.
Pokroky vícejádrových technologií
Vícejádrové procesory jsou v osobních počítačích dostupné od počátku 21. století. Vícejádrové návrhy řešily problém procesorů narážejících na strop svých fyzických omezení, pokud jde o jejich takt a jak efektivně by mohly být chlazeny a přitom si zachovat přesnost. Přechodem na další jádra na jediném procesorovém čipu se výrobci vyhnuli problémům s taktovací frekvencí tím, že efektivně znásobili množství dat, které by mohl procesor zpracovat.
Když byly původně vydány, výrobci nabízeli pouze dvě jádra v jednom CPU, ale nyní existují možnosti pro čtyři, šest a dokonce 10 nebo více. Kromě přidávání jader mohou technologie simultánního multithreadingu – jako je Intel Hyper-Threading – zdvojnásobit virtuální jádra, která vidí operační systém.
Procesy a vlákna
Proces je specifická úloha, podobně jako program, běžící na počítači. Proces se skládá z jednoho nebo více vláken.
Vlákno je jednoduše jeden proud dat z programu procházející procesorem v počítači. Každá aplikace generuje své vlastní jedno nebo více vláken v závislosti na tom, jak běží. Bez multitaskingu může jednojádrový procesor zpracovávat pouze jedno vlákno najednou, takže systém rychle přepíná mezi vlákny a zpracovává data zdánlivě souběžným způsobem.
Výhoda více jader spočívá v tom, že systém dokáže zpracovat více než jedno vlákno současně. Každé jádro může zpracovávat samostatný proud dat. Tato architektura výrazně zvyšuje výkon systému, na kterém běží souběžné aplikace. Vzhledem k tomu, že servery mají tendenci provozovat mnoho souběžných aplikací v danou dobu, byla tato technologie původně vyvinuta pro podnikové zákazníky – ale jak se osobní počítače staly složitějšími a multitasking se zvýšil, i oni těžili z toho, že mají další jádra.
Každý proces je však řízen primárním vláknem, které může zabírat pouze jedno jádro. Relativní rychlost programu, jako je hra nebo video renderer, je tedy pevně omezena na schopnost jádra, které primární vlákno spotřebovává. Primární vlákno může absolutně delegovat sekundární vlákna na jiná jádra – ale hra se nestane dvakrát rychlejší, když zdvojnásobíte jádra. Není tedy neobvyklé, že hra plně maximalizuje jedno jádro (primární vlákno), ale vidí pouze částečné využití ostatních jader pro sekundární vlákna. Žádné zdvojování jádra neobchází skutečnost, že primární jádro je omezovačem rychlosti pro vaši aplikaci a aplikace, které jsou citlivé na tuto architekturu, budou fungovat lépe než aplikace, které tomu tak nejsou.
Závislost na softwaru
I když koncept vícejádrových procesorů zní lákavě, tato technologie má zásadní výhradu. Aby bylo možné využívat skutečné výhody více procesorů, musí být software spuštěný v počítači napsán tak, aby podporoval vícevláknové zpracování. Bez softwaru podporující takovou funkci budou vlákna primárně vedena přes jediné jádro, čímž se sníží celková efektivita počítače. Koneckonců, pokud může běžet pouze na jednom jádru ve čtyřjádrovém procesoru, může být ve skutečnosti rychlejší spustit jej na dvoujádrovém procesoru s vyššími základními takty.
Všechny hlavní současné operační systémy podporují multithreading. Ale multithreading musí být také zapsán do aplikačního softwaru. Podpora multithreadingu ve spotřebitelském softwaru se v průběhu let zlepšila, ale u mnoha jednoduchých programů není podpora multithreadingu stále implementována kvůli složitosti sestavení softwaru. Například poštovní program nebo webový prohlížeč pravděpodobně neuvidí velké výhody multithreadingu jako program pro úpravu grafiky nebo videa, kde počítač zpracovává složité výpočty.
Dobrým příkladem pro vysvětlení této tendence je podívat se na typickou počítačovou hru. Většina her vyžaduje nějakou formu renderovacího enginu k zobrazení toho, co se ve hře děje. Navíc nějaká umělá inteligence řídí události a postavy ve hře. S jedním jádrem se obě úlohy provádějí přepínáním mezi nimi. Tento přístup není efektivní. Pokud by systém obsahoval více procesorů, vykreslování a umělá inteligence by mohly běžet každý na samostatném jádře – ideální situace pro vícejádrový procesor.
Je 8 > 4 > 2?
Překročení dvou jader představuje smíšené výhody, protože odpověď pro každého kupujícího počítače závisí na softwaru, který obvykle používá. Například mnoho klasických her stále nabízí malý rozdíl ve výkonu mezi dvěma a čtyřmi jádry. Dokonce ani moderní hry – z nichž některé údajně vyžadují nebo podporují osm jader – nemusí fungovat lépe než šestijádrový stroj s vyšší rychlostí základního taktu, protože účinnost primárního vlákna určuje efektivitu vícevláknového výkonu.
Na druhou stranu program pro kódování videa, který překóduje video, pravděpodobně uvidí obrovské výhody, protože vykreslování jednotlivých snímků může být předáno různým jádrům a poté softwarem poskládáno do jednoho streamu. Takže mít osm jader bude ještě výhodnější než mít čtyři. Primární vlákno v podstatě nepotřebuje poměrně bohaté zdroje; místo toho může přenést tvrdou práci na dceřiná vlákna, která maximalizují jádra procesoru.
Rychlost hodin
Obecně platí, že vyšší takt bude znamenat rychlejší procesor. Rychlosti hodin se stanou mlhavějšími, když vezmete v úvahu rychlosti vzhledem k více jádrům, protože procesory drtí více datových vláken díky extra jádrům, ale každé z těchto jader bude běžet nižší rychlostí kvůli tepelným omezením.
Například dvoujádrový procesor může podporovat základní takt 3,5 GHz pro každý procesor, zatímco čtyřjádrový procesor může běžet pouze na 3,0 GHz. Při pohledu na jedno jádro na každém z nich je dvoujádrový procesor o 14 procent rychlejší než čtyřjádrový. Pokud tedy máte program, který je pouze jednovláknový, je dvoujádrový procesor ve skutečnosti efektivnější. Pokud váš software dokáže využívat všechny čtyři procesory, pak bude čtyřjádrový procesor ve skutečnosti asi o 70 procent rychlejší než dvoujádrový procesor.
Závěry
Mít procesor s vyšším počtem jader je obecně lepší, pokud jej podporuje váš software a typické případy použití. Z velké části bude dvoujádrový nebo čtyřjádrový procesor pro běžného uživatele počítače více než dostatečný výkon. Většina spotřebitelů neuvidí žádné hmatatelné výhody z překročení čtyř procesorových jader, protože toho využívá tak málo nespecializovaného softwaru. Nejlepší případ použití procesorů s vysokým počtem jader se týká strojů, které provádějí složité úkoly, jako je úprava videa na počítači, některé formy špičkových her nebo složité vědecké a matematické programy.
Podívejte se na naše myšlenky o tom, jak rychlý počítač potřebuji? abyste získali lepší představu o tom, jaký typ procesoru nejlépe odpovídá vašim výpočetním potřebám.