
Moderní procesory jsou srdcem každého počítače a jejich výkon už dávno nezávisí pouze na vysoké frekvenci. Dnes hraje hlavní roli paralelizace, tedy schopnost provádět více úloh naráz. V souvislosti s tím často slýcháme o procesorových jádrech a takzvaných "threadech" neboli vláknech. Víte, co to softwarové vlákno vlastně je a jak pomáhá zrychlit váš počítač?
Když vybíráte nový procesor pro stolní počítač nebo notebook, mezi hlavními specifikacemi vždy narazíte na dva údaje – počet jader a počet vláken (threadů). Zatímco jádro si kdekdo představí jako fyzickou část čipu, pojem thread bývá pro řadu uživatelů poněkud abstraktní. Přitom právě efektivní práce s vlákny je důvodem, proč moderní operační systémy fungují tak plynule. Pojďme se na technologii threadů a jejich fungování podívat od A až do Z.
Zatímco procesorové jádro (core) je skutečný, fyzický hardware vyražený do křemíkového čipu, thread (vlákno) je jednotka čistě virtuální neboli logická. Můžeme ho definovat jako nejmenší sekvenci programových instrukcí, kterou dokáže operační systém samostatně spravovat a posílat procesoru k odbavení. Zjednodušeně řečeno, thread představuje konkrétní práci či úkol, který v daný moment procesor vykonává.
Původně platilo pravidlo, že jedno fyzické jádro dokázalo v jeden okamžik zpracovávat pouze jedno jediné vlákno. Pokud jste spustili více programů najednou, procesor mezi nimi musel bleskurychle přepínat, což sice vytvářelo iluzi současného běhu, ale z hlediska hardwaru šlo o čisté střídání úloh. S příchodem moderních architektur se však situace zásadně změnila.
Abyste správně pochopili rozdíl, představte si fyzické jádro jako kuchaře v kuchyni a thready jako objednávky od hostů. Pokud má kuchař (jádro) k dispozici pouze jednu linku (jedno vlákno), připravuje jedno jídlo. I když zrovna čeká, než se upeče maso v troubě, nemůže začít dělat nic jiného, protože jeho pracovní plocha je obsazená. Fyzická kapacita kuchaře tak zůstává nevyužitá a on zbytečně prostojí drahocenný čas.
Když ale kuchaři přidáte druhou pracovní plochu (druhý thread), situace se obrací. V momentě, kdy maso pro první objednávku vyžaduje pouze pasivní čas v troubě, kuchař se otočí k druhé lince a začne krájet zeleninu pro druhou objednávku. Kuchař je sice pořád jenom jeden (jedno fyzické jádro), ale díky dvěma logickým kanálům (dvěma threadům) dokáže pracovat daleko efektivněji a odbavit více zakázek za kratší čas.
Technologie, která umožňuje jednomu fyzickému jádru fungovat jako dvě logická jádra (a tedy zpracovávat dvě vlákna naráz), se obecně nazývá Simultaneous Multithreading (SMT). Společnost Intel tuto technologii proslavila pod obchodním názvem Hyper-Threading, zatímco AMD ji u svých procesorů Ryzen označuje jednoduše jako SMT. Jak to celé funguje uvnitř křemíku?
Každé procesorové jádro obsahuje různé exekuční jednotky (např. pro sčítání celých čísel, pro práci s desetinnými čísly apod.). Málokdy se však stane, že by jeden program v jeden okamžik zaměstnal úplně všechny tyto části. Hyper-Threading proto duplikuje určité sekce procesoru – zejména registry a stavové komponenty – tak, aby si operační systém myslel, že má před sebou dvě samostatná jádra.
Operační systém pak posílá instrukce do obou těchto logických jader. Fyzické jádro následně inteligentně kombinuje obě vlákna a vykrývá jimi hluchá místa. Pokud první vlákno zrovna čeká na data z pomalé operační paměti RAM, jádro okamžitě přepne výkon na druhé vlákno. Výsledkem je mnohem vyšší vytížení hardwaru a nárůst celkového procesorového výkonu v aplikacích, které dokážou s více vlákny pracovat.
Je velmi důležité neplést si počet vláken s reálným počtem jader. Pokud máte procesor, který má 4 jádra a 8 vláken, neznamená to, že máte v počítači osmijádrový procesor. Aktivní technologie SMT/Hyper-Threading sice zvyšuje efektivitu, ale nenavyšuje fyzický počet výpočetních jednotek.
V praxi přináší druhé vlákno na jednom jádru nárůst výkonu zhruba o 15 až 30 % v závislosti na konkrétní úloze. Naproti tomu přidání skutečného druhého fyzického jádra by teoreticky zvedlo výkon až o 100 %. Thready jsou tedy skvělým způsobem, jak z existujícího hardwaru vyždímat maximum, ale plnohodnotné jádro svým výkonem nikdy stoprocentně nenahradí.
Využití procesorových vláken závisí primárně na softwaru, který na počítači spouštíte. Ne každý program je totiž napsán tak, aby dokázal úlohy rozdělit mezi více vláken (tzv. multi-threaded aplikace). Náročnost se tak liší podle toho, k čemu výpočetní techniku používáte.
Pro běžnou kancelářskou práci, prohlížení internetu a sledování filmů vám dnes bohatě postačí základní procesory se 4 jádry a 4 až 8 thready. Naopak moderní počítačové hry, profesionální střih videa, 3D modelování či renderování jsou na thready extrémně náročné. Zde se plně projevuje síla procesorů s 8 a více jádry a 16 či více thready, kde každé vlákno navíc znamená zkrácení doby čekání na dokončení úkolu.
Chcete vědět, jak je na tom váš stolní počítač nebo notebook? Kolik má skutečných jader a kolik logických vláken mu pomáhá s výpočty? Ve Windows to zjistíte velmi snadno a nemusíte kvůli tomu instalovat žádné specializované programy. Stačí využít vestavěné nástroje systému.
Stiskněte klávesovou zkratku Ctrl + Shift + Esc, čímž otevřete Správce úloh. Přepněte se na záložku "Výkon" a klikněte na sekci "Procesor (CPU)". V dolní části okna uvidíte přehledný výpis, kde systém jasně specifikuje položky "Jádra" a "Logické procesory" – přičemž logické procesory jsou právě vaše thready. Pokud zde kliknete pravým tlačítkem myši do grafu, zvolíte možnost "Změnit graf na" a vyberete "Logické procesory", plocha se rozdělí na desítky malých okének. Každé z nich reprezentuje jedno vlákno a vy můžete v reálném čase sledovat, jak moc je které z nich zrovna vytížené.
Ačkoliv jsou thready virtuální záležitostí, jejich aktivní využívání má přímý dopad na fyzické chování čipu. Jelikož díky nim běží exekuční jednotky jádra naplno a nedochází k prostojům, procesor produkuje více odpadního tepla a logicky stoupá i jeho spotřeba elektrické energie. To je důvod, proč moderní notebooky při náročných vícevláknových úlohách rychleji vybíjejí baterii a spouštějí ventilátory na maximum. Efektivita je vykoupena vyšším nasazením hardwaru.
Z výše uvedených řádků je patrné, že bez existence threadů a technologií pro jejich souběžné zpracování by dnešní svět výpočetní techniky vypadal úplně jinak. Thready umožňují operačním systémům efektivně žonglovat s tisíci drobných úkolů, které na pozadí vašeho počítače neustále běží, od antivirové kontroly až po přehrávání hudby.
Při výběru nového hardwaru proto vždy hledejte optimální balanc. Samotný vysoký počet jader je sice skvělý základ, ale podpora vícenásobných vláken (Hyper-Threading/SMT) dodává procesoru potřebnou flexibilitu a zhruba čtvrtinu výkonu navíc bez nutnosti zvětšovat samotný křemíkový čip. Ve výsledku tak získáváte svižnější systém, rychlejší reakce aplikací a stabilnější herní výkon. Investice do procesoru s dostatečným počtem threadů zkrátka dává obrovský smysl.