HyperThreading dåligt för serverprestandan

Permalänk
Melding Plague

HyperThreading dåligt för serverprestandan

<font style="font-size: 10pt"><b>HyperThreading dåligt för serverprestandan</b></font> <small class="small">lördag 19 november av <a href="mailto:nyhet@sweclockers.com">Bjorn</a></small><br>
Programmerare hos bland annat Microsoft menar att HyperThreading i många fall ger mycket sämre prestanda i serverapplikationer. Anledningen till det här ska vara om den ena logiska processorn läser väldigt mycket minne samtidigt som den andra logiska processorn arbetar med något viktigt. Då båda logiska processorer delar L1- och L2-cache kan en så kallad cachemiss uppstå för den viktiga logiska processorn, då data den behöver inte ligger i cacharna längre. Peter Ibbotson på företaget Lakeview Computers säger:
<br />
<br /><i>"Intel had sold hyperthreading as something that gave performance gains to heavily threaded software. SQL Server is very thread-intensive, but it suffers. In fact, I've never seen performance improvement on server software with hyperthreading enabled. We recommend customers disable it when running Citrix and our software on the same server"</i>
<br />
<br />Det här går hand i hand med alla spelentusiaster som tidigt upptäckte att HyperThreading ofta ger något sämre prestanda i spel. <a href="http://news.zdnet.co.uk/0,39020330,39237341,00.htm" target="_blank">ZDnet</a> har mer information.

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk

Detta kan väl inte vara helt oväntat? gissa varför de vräker på med massor av cache ...

och har man då en cpu som kan ja 2 trådar "loadade" samtidigt utan att dubblera cachen så ökar ju risken för cachemiss markant

Visa signatur

https://www.piratpartiet.se/ - Ljuset i politiskt mörka sverige
Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety.

Permalänk
Medlem

Nä det är ju inget oväntat. Jag märkte för övrigt ingen skillnad på min P4:a vare sig jag hade HT avstängd eller inte och i spel verkade det inte göra någon nytta. Inte så konstigt.

Permalänk
Medlem

Fast största tanken med Hyper Threading är ju just att dölja cache-missarna vad jag vet. Att fylla exekveringsenheterna ska ju ett vettigt kompilerat program klara själv om det inte vore för latensen mot minnet.

Tror snarare det är Intels implementation som suger än idén i sig. Alternativt så har man inte haft cachen i tankarna tillräckligt mycket när man optimerat SQL Server.

Permalänk
Medlem

spel nyttjar ju aldrig HT, men nog flytter OSet på bättre med det igång.

Visa signatur

Operativsystemet som löser nästan alla problem: Mint

Permalänk
Medlem

Vore bra med lite siffror där man kan se att det faktiskt gör lite nytta även i praktiken och inte bara i vissa fall i teorin. Oftast är det bara tro, tyckande och sockerpillseffekt utan fakta. När ett företag som Intel och deras marknadsföringsavdelning pumpar ut att det har betydelse så vill man ju gärna tro det och är man Intelfan så är det klart att man tror på vad Intel säger men hur är det egentligen i praktiken?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av AndreaX
spel nyttjar ju aldrig HT, men nog flytter OSet på bättre med det igång.

iDs senaste motorer stödjer alla multithreading. Dvs de bör kunna utnyttja HT och de kan definitivt utnyttja flera processorer om man mot förmodan har det.

Visa signatur

P4 2.0 GHz@2.26 GHz | GF6600GT Core 500 MHz@580 MHz Mem 900 MHz@1135 MHz | 1 GB pc2700 <<Lite kuriosa bara: Ping eller mer korrekt latency är en storhet, ms är enheten. Spänning är också en storhet medan volt är enheten. Tänk vad skoj det skulle låta om du sa: "Hörru höj upp kilometer per timmen va!" (Brun hårig sjuk sköterska)>>

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av XCan
iDs senaste motorer stödjer alla multithreading. Dvs de bör kunna utnyttja HT och de kan definitivt utnyttja flera processorer om man mot förmodan har det.

Kommer inte ihåg vilken sida de var.. var för någon vecka sedan.. de testade dual core i Q4 och de flöt bättre med 4800+ än FX-57 ... tror de vara så meget som 10% emellanåt

Permalänk
Medlem

Är man så dum så man köper en intel-prolle till en gamingdator så får man skylla sig själv.
AMD for teh w1n!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bom
Nä det är ju inget oväntat. Jag märkte för övrigt ingen skillnad på min P4:a vare sig jag hade HT avstängd eller inte och i spel verkade det inte göra någon nytta. Inte så konstigt.

Kanske för att dina spel inte är flertrådade och kräver massa CPU...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av XCan
iDs senaste motorer stödjer alla multithreading. Dvs de bör kunna utnyttja HT och de kan definitivt utnyttja flera processorer om man mot förmodan har det.

Som det står i nyheten har HT ibland svårt att utnyttja jusst flertrådade applikationer.

Vet inte hur det är med senare spel men med Quake 3 så gav det väldigt lite i alla fall. Och med tanke på att det mesta hänger på grafikkortet så tror jag inte det kommer ge så mycket i den nyare spelen heller. Men det är bra att de har börjat med det för i framtiden kan det säkert ge mer.

Permalänk
Medlem

Multitrådningen i Q3 var bara ett fulhack som Carmack gjorde för han tyckte det var roligt. När utvecklarna har en riktig anledning att göra spelen multitrådade, dvs när de säljer fler spel pga detta, så kommer det naturligtvis komma på riktigt och då även fungera bättre.

Permalänk
Medlem

Jo, och med tanke på att både xbox 360 och PS3an kommer villja ha multitrådade spel så borde det smitta av sig på PC spelen också

Permalänk
Medlem

Ja och när det kommer flera spel som stödjer flera trådar så är det läge att skaffa en dual core om man inte har gjort det tidigare.

Permalänk
Glömsk

Jag slängde ihop ett litet program som är extremt parallellt upp till n trådar och undviker cache hits genom att enbart utföra primitiva operationer direkt i APU:n (alla register kan användas). Här fick jag 40% prestandabonus med HyperThreading med över 2 trådar, och 100% prestandabonus med eh dual core-processor. Så resultaten i nyheten ska läsas som att prestanda "ibland" kan vara dålig med "nuvarande" programvara.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Så man kan kanske säga att under mycket gynsamma förhållande kan HT arbeta som nästan ca~1½? processorer men den kan i princip alldrig ersätta dubbla processorer, därför är single core inte att föredra om man ser till framtiden, eller?

Visa signatur

XFX Radeon RX 7700 XT Speedster QICK 319 Black Edition | AMD Ryzen R7 5700X | Noctua NH-D15 | Asus TUF Gaming B550-Plus | Kingston Fury Beast DDR4 3600MHz 4x8GB | Samsung 990 Pro 1TB | Corsair HX1000i | Fractal Design Define S | LG 27GL83A | Corsair K95 Platinum | Corsair Sabre RGB PRO Wireless | Corsair Void Elite Wireless

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
Jag slängde ihop ett litet program som är extremt parallellt upp till n trådar och undviker cache hits genom att enbart utföra primitiva operationer direkt i APU:n (alla register kan användas). Här fick jag 40% prestandabonus med HyperThreading med över 2 trådar, och 100% prestandabonus med eh dual core-processor. Så resultaten i nyheten ska läsas som att prestanda "ibland" kan vara dålig med "nuvarande" programvara.

Låter som om din kåd inte var optimerad särskilt bra. En ordentligt optimerad kåd av den typ du gjort (ingen läsning från minnet, få och förutsägbara hopp - dvs en lång loop t ex) ska kunna utnyttja dom delarna av processorn den använder till 100%. Om man då kör 2 såna likadana trådar så ska man inte få någon prestandaökning alls i princip, och inte heller någon prestandaförlust.

Citat:

Ursprungligen inskrivet av skruvis
Så man kan kanske säga att under mycket gynsamma förhållande kan HT arbeta som nästan ca~1½? processorer men den kan i princip alldrig ersätta dubbla processorer, därför är single core inte att föredra om man ser till framtiden, eller?

I praktiken verkar det ju vara allt mellan -5% till +20% prestandaökning i riktiga program. Hyper Threading har vad jag vet inga fördelar jämfört med en dual-core. Intels dual core P4 EE-processorer har däremot två cores som båda använder HT, detta verkar inte ge någon fördel alls jämfört med samma HT avslagen.
Andra processortillverkare har också HT-varianter på G. T ex ska ju varje core i Xbox360 cpun från IBM ha stöd för två trådar samtidigt. Sun jobbar också hårt med detta. Antagligen går det att utnyttja och/eller implementera det bättre än Intel och x86-kompilatorerna/utvecklarna gör i dagsläget.

Permalänk
Medlem

Maglar: kåd? Vad är det? Stavas väl ändå kod...

Permalänk
Glömsk
Citat:

Ursprungligen inskrivet av maglar
Låter som om din kåd inte var optimerad särskilt bra. En ordentligt optimerad kåd av den typ du gjort (ingen läsning från minnet, få och förutsägbara hopp - dvs en lång loop t ex) ska kunna utnyttja dom delarna av processorn den använder till 100%. Om man då kör 2 såna likadana trådar så ska man inte få någon prestandaökning alls i princip, och inte heller någon prestandaförlust.

Tror inte du läste vad jag skrev. En single-core-processor utan HT löste problemet i 1 tidsenhet med 2 trådar. HT-processorn löste problemet i 0,80 tidsenheter med två trådar, och dual core-processorn löste problemet i 0,5 tidsenheter med 2 trådar. Alla kärnor, logiska som riktiga, jobbade därför 100% hela tiden.

Du menar väl inte på allvar att du tror att en HT-processor presterar lika bra som en dual core-processor eller som två processorer?

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MOrKiz
Maglar: kåd? Vad är det? Stavas väl ändå kod...

Det är inget ord så man kan stava hur man vill. Det är bara en försvenskning av engelskans code som kommer från source code och har ingenting med det svenska ordet kod att göra vad jag vet.

Citat:

Ursprungligen inskrivet av Psionicist

Tror inte du läste vad jag skrev. En single-core-processor utan HT löste problemet i 1 tidsenhet med 2 trådar. HT-processorn löste problemet i 0,80 tidsenheter med två trådar, och dual core-processorn löste problemet i 0,5 tidsenheter med 2 trådar. Alla kärnor, logiska som riktiga, jobbade därför 100% hela tiden.

Du menar väl inte på allvar att du tror att en HT-processor presterar lika bra som en dual core-processor eller som två processorer?

Jag missförstod kanske, jag fick för mig att det inte var ett problem du skulle lösa utan att du bara slängt ihop lite meningslös kåd för att maxa CPUn. I ett sådant fall bör man kunna maxa en P4 med HT med endast 1 tråd. Dvs 2 trådar får totalt igenom lika många instruktioner per sekund som om 1 tråd, medans 2 trådar på ett dual-core- eller flerprocessorsystem får igenom dubbelt så många instruktioner per sekund.

Edit: Vid närmare eftertanke så finns ju faktiskt det svenska ordet källkod som precis motsvarar engelskans source code. Så kåd är väl en felstavning då antar jag. Men jag gillar den formen och kommer nog fortsätta med den precis som jag brukar stava "också" som "oxo".