2v1: Pentium4 3GHz HT aneb až 30% zdarma
Když jsme před časem psali o technologii HyperThreading, připadaly nám záležitosti okolo této technologie, umožňující "rozdvojení" procesoru na dvě logické jednotky, jako pouhé plané teoretické úvahy - prostě něco co začne a skončí v laboratořích. A přesně tak to i skončilo... považujeme-li kancelář PCtuningu za laboratoř :-) Pojďme se podívat blíže na něco, co v budoucnu nakonec možná skončí v "laboratoři" nejednoho z nás.
V tomto článku se nebudu dlouze věnovat přece jen poněkud nezáživné teorii - tomu raději věnujeme samostatný článek. Dnes se pouze zaměřím na klíčové aspekty nové technologie a na to, co nás zajímá: "co to znamená pro běžnou praxi u nás, v ČR...".
Teorie - absolutní minimum
U základů teorie HyperThreadingu je poznatek, že jednotlivé jednotky procesoru nejsou v průběhu vykonávání programu využity stoprocentně. Při vykonávaní jednoho výpočetního vlákna (anglicky thread) se vyskytují okamžiky, kdy určité části jádra procesoru (ALU / FPU) zahálí. Proč tedy nevytvořit mechanizmus, kdy by se v daném okamžiku volné jednotky nevyužily pro výpočet dalšího, druhého programového vlákna, které by se tak vlastně počítalo souběžně. Nejedná se tedy ani o zdvojnásobení všech jednotek procesoru, ani o dva procesory "zabalené" do jednoho pouzdra, ale o technologii, která využívá výpočetních jednotek procesoru potenciálně lépe.
Poznámka: Jelikož jednotlivé virtuální procesory technologie "HyperThreading" zpracovávají paralelně pouze výpočetní vlákna (thready), můžete se setkat i s pojmem SMT, Symmetric Multi-Threading, a to narozdíl od klasické koncepce SMP, Symmetric Multi-Processing, kdy jsou k dispozici dva kompletní procesory "se vším všudy".
Efektivita Hyper-Threadingu (HT)
Prvky procesoru HT které nejsou zdvojené, jsou logickými procesory sdílené. V praxi pak mohou nastat tyto situace:
- jednotlivá vlákna budou využívat zdrojů jádra relativně efektivně:
Tento model je jistě ideální (Intel uvádí nárůst výkonu až 40%) - v této skupině si lze představit především ty programy, které jsou či budou pro HyperThreading speciálně optimalizované. Někdy však stačí, že si daný program, s HyperThreadingem prostě "sedne" - většinou se jedná o programy, kde je už od začátku počítáno i s více procesory (tedy o programy které jsou například optimalizované pro SMP, Symmetric Multi-Processing). V praxi může nastat situace, kdy je zrychlení 1 - 40%.
- běží jen jedno výpočetní vlákno:
Některé programy a procesy využívají jen jednoho výpočetního vlákna - zde nepomohou ani dvouprocesorové stroje, ani technologie HyperThreading (HT). Takových programů je dnes většina (viz. test).
- vlákna si budou navzájem "krást" potřebné jednotky:
Jednotlivá vlákna si navzájem "kradou / obsazují" stejné jednotky - druhý virtuální procesor pak čeká na uvolnění prostředků prvním (a vice-versa). Zde by pomohl plný multiprocesorový stroj. HyperThreading zde selhává.
V praxi, jak jsme zjistili, nastává mix všech tři případů - to v závislosti na množství a charakteru spuštěných programů. Někde HT skutečně pomáhá, jinde je jeho přínos nulový (od 0% až do 35%). S výkonovým propadem jsme se v našich testech nesetkali (*za předpokladu nasazení správného OS i hardwaru - viz. dále).
V další části probereme procesory, které umí HT + potřebné vybavení...