( turul16 | 2018. 11. 21., sze – 15:04 )

Tudok olyan programot irni ahol HT 2x gyorsabb intel CPU esten.

A volasagban azert nem latsz ilyet, mert a programozo ill. a forditos is igyekszik ugy megirni a programot,
hogy az egyetlen szalon is gyors legyen es lehetoseget adjon a CPU-nak a parhuzamos futatasra.
Elvileg lehetne olyan programot irni ami 4~8 thread eseten es 4~8 szoros mutatot irna.

A program nem jobb, csak demo, szandekosan nem hagytam a forditot okosabbank lenni,
ill. en is szandekosan buta voltam.

Idealis esetben HT -nek nulla haszna van, akkor kerul elonybe
ha egytlen szal nem tudja kihasznalni az osszes vegrehajtasi egyseget.
Egy corenak tipikusan ~8 execution unit-ja van, lehet olyan programot irni ami csak egyet kepes hasznalni,
ha a hasznalt utasitasnak varnia kell a megelezo eredemnyere ill. az utasitasitas csak egyet hasznal,
akkor akarmit csinal a CPU 7 egyseg uresen maradna, ilyenkor egy plusz szal ki tudja hasznalni a fenmarado
unitokat ... Pontosan tul hosszu leirni, ez a rovid valtozat ..

Gyakrolatban, van boven olyen eset, amikor CPU rosszul tippeli a jovot, hiaba kap hinteket is,
ilyenkor egyetlen szal nem tud csinalni semmit jo par orajelig, ilyenkor a masik szal meg mindig
ki tudja hasznalni a szabadon maradt exection unitokat.

Ha minden jo es midket szal boven tud dipsetchelni, akkor per szal teljesitmeny leseik,
mert a vegrehajtasi egysegekert versenyeznek. A total teljesitmeny nem feltetlen csokken,
hacsak nem kezdenek el nagyon a cachert is versenyezni.

A szolokank akkor is elonyuk van, ha a LOAD high,
kevesebb ido megy el context switchre.

16 processt jobb futatni 8 core (16 thread) -en, mint csak 8 core/8 thread -en.

Ez elenkezojet is lehet trollkdni, CPU foo buta, mert csak sok szal eseten
tudja kiasznalni a execution unitokat..

BTW, van olyan ritka eset szelso eset is, hogy HT art,
a fentebb emlitett cache-ert valo verseyezes miatt akkor negativ is lehet a vegeredmeny.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.