mboost-dp1

unknown

Hyperthreading kan give dårlig ydelse

- Via ZDNet |UK| - , redigeret af peter_m

Intels Hyperthreading teknologi, der gør det muligt at afvikle flere tråde på en gang, kan i visse tilfælde give en lavere ydelse end hvis man ikke brugte det.

Problemet er set på SQL og Citrix terminal servere, Hyperthreading sænker ydelsen når serverne belastes. Med Hyperthreading slået til, har man to logiske processorer. Disse logiske processorer deler L1 og L2 cachen i processoren, men kan udføre 2 vidt forskellige ting så som “system threads” og “worker threads”, der tilgår cachen forskelligt. Når dette sker, bliver cachen i princippet “rodet” og kan ikke følge med forespørgslerne til den, hvilket har en meget negativ indflydelse på ydelsen.

Slår man Hyperthreading fra, så der kun kan afvikles en tråd af gangen, vender ydelsen tilbage til det man ville forvente.





Gå til bund
Gravatar #1 - DrHouseDK
21. nov. 2005 08:48
Hmm, er der HyperThreading på Intel's server-CPU'er? :)
Gravatar #2 - mrmorris
21. nov. 2005 08:56
Nyheden er over en uge gammel. Anyway, problemet bunder i den synkronisering der er nød til at foregå imellem en (hyppig) read- og en (sjælden) write- tråd. Kildekode i C (MS) til at se problemet i aktion kan ses på Slava Oks' blog.
Gravatar #3 - NeoNmaN
21. nov. 2005 09:04
Hmmm enligt remlig skummelt... det er ikke så godt... men er det noget os private bruger som ( PHP Udviklere ) m.m. kommer til at mærke eller hvordan funger det ?
Gravatar #4 - jensendk
21. nov. 2005 09:06
Kunne løses med separat cache til hver tråd, men det øger jo ligesom prisen på processoreren.
Gravatar #5 - plazm
21. nov. 2005 09:07
#2 Hvis den er over en uge gammel, hvorfor er det så at du ikke har sendt den ind ?
Jeg er pænt træt af at høre på dit brok, når du ikke engang selv gør noget for der kommer nyheder på newz.
Og jeg ved godt jeg ikke selv smider specielt mange nyheder op, men jeg brokker mig da i det mindste ikke over udbudet.

OnTopic.
Er det kun på servere at der er så store problemer, eller er det noget lignende det samme på clienter/workstations.
Gravatar #6 - GOOOD
21. nov. 2005 09:08
mener da også det har været på tale at med Hypertreading sat til, gav det nogle sikkerheds problemer, netop fordi de deler samme L1 og L2, så andre processor kunne få mulighed, for at læse fra data fra andre processor.
Gravatar #7 - mr ac
21. nov. 2005 09:19
Hyperthreading, dvs. muligheden for at afvikle flere tråde samtidigt, vil i næsten alle tilfælde give bedre ydelse. Kun i helt specielle tilfælde som den almindelige bruger stort set ikke kommer ud i, vil være uhensigtmæssig at afvikle på en HT-CPU.

Desuden så er HT vel mere eller mindre kun et overgangfænomen indtil Intel også får gang i deres fler-kerne CPU'er... her er AMD's X2 jo allerede tilgængelig (og iøvrigt også ydelsesmæssigt foran).
Gravatar #8 - mIrAqe
21. nov. 2005 09:21
hehe multitasking tabte alligevel til "one-track-mind". Sådan gutter!
Gravatar #9 - mrmorris
21. nov. 2005 09:25
#5 Jeg gør skam noget. Men jeg indsender kun dét jeg er sikker på bliver godkendt. At jeg kommenterer nyhedens alder sker kun fordi det er irreterende at sende en nyhed ind som bliver afvist pga. at være for gammel, mens dette tilsyneladende ikke gælder for alle.

Det er hyperthreading som er en designfejl. Der er ingen forskel på "client/workstation" og server da de bruger samme netburst arkitektur.

#6 Problemet du omtaler er mest af teoretisk karakter, men har rigtignok været postet på newz.
Gravatar #10 - royalrex
21. nov. 2005 09:39
Jeg har oplevet det med min P4 3.0GHz HT. Det er godt nok en af de første så kan godt være den er blevet bedre, men jeg oplevede hakker i lyden i spil såsom Generals. Fattede ikke hvorfor den gjorde det, havde jo lige købt det hurtigste af det hurtigste!
Men da jeg slog HT fra var der ingen problemer overhovedet, meget underligt.
Min bror har lige fået en AMD X2 og den har ikke de symptomer, men den har selvfølgelig oxo 2 kerner...

Peace...
Gravatar #11 - Whoever
21. nov. 2005 09:51
Pentium 4 processorerne har ordered read/write, dvs. der skulle ikke være noget problem med dataraces. Men det er jo netop fordi de snakker sammen, og kigger i hinandens cache (der er vist lavet forsøg der viser at 16 cpu'er ville snakke så meget sammen at pointen med flere cpu'et røg fuldstændig til på gulvet). Men cpu'er som Itanium og lign., bruger ikke ordered memory management, og derfor kan hardwaren lave skrive operationer for tidligt osv., f.eks. kan en pointer til et objekt skrives til shared mem, inden selve objektet er initialiseret.
Gravatar #12 - kimit
21. nov. 2005 11:27
#7
Vedr. HT blot et overgangsfænomen.

Xbox 360's cpu har 3 kerne med hver 2 tråde, der deles om den samme mængde 2nd level cahce.
Så det er ikke kun Intels cpu'er der har problemet, og flere kerner løser ikke nødvendigvis problemet, hvis de skal deles om cachen. Tværtimod vil det gøre problemet værre, da der ikke er nogen gevinst ved at slå en eller flere kerner fra.

For Xbox'ens vedkommende kan problemet endda vise sig at være værre. I spil, som i høj grad er "real-time" afhængigt, vil det mærkes med det samme, hvis ydelsen pludselig er i bund, eller den svinger meget.
Cell processoren forsøger at løse problemet ved at give hver SPU kerne sit eget lokale lager, så de ikke saboterer hinandens cache. På den vis er Cell processoren bedre egnet til real-time opgaver end Xboxens cpu.
Gravatar #13 - sKIDROw
21. nov. 2005 11:44
#8

Dårligt implementeret multithreading, vil nemt kunne tabe til singlethreading. At dele cache er sjældent særligt smart. Men at lave dobbelt cache, fjerner nok en del af besparelsen. Så kunne man lige så godt gøre det rigtigt, og lave det rigtigt med to kerner.
Gravatar #14 - Subcubes
21. nov. 2005 12:00
Jeg har ikke læst tråden - så måske er det her en gentagelse.

Men i hvert fald, så har jeg lige her i weekenden first-hand oplevet at min HT cpu var pænt langsom til at indsætte vold mange SQL rows.

I bund og grund, så satte vi (min bror og jeg) min Stationære maskine (En P4 HT 3 GHz) til at indsætte 1 mio. rows i en MySQL database - og det samme gjorde vi med min laptop, på samme tid.

Min laptop (En AMD Turion 64 2Ghz) performede betydeligt hurtigere. Hvilket jeg egentlig var meget overrasket over. Efter 5 min. havde den indsat over 80.000 rows mere end den stationære.

Laptoppen burde ellers være langsommere på alle punkter. Disken er kun 5400rpm - mod den stationærs SATA diske osv.

Lidt underligt, at efter den første test jeg overhovedet laver af den slags her - så viser nyheden sig på newz.dk dagen efter.

Hvem har installeret webcams inde på mit kontor :) ????
Gravatar #15 - mrmorris
21. nov. 2005 12:08
#13 Men husk på, at både AMD og Intel's fremtidige dual-core vil få delt cache. Ulemper er der visse af (som nyheden omtaler) men der er jo også gode grunde til at det sker. Alle tråde kan nu schedualeres til enhver kerne fordi de nu har lige hurtig adgang til L2 cache ligesom det så heller ikke er et problem at sikre begge cache er konsistente (ingen ugyldig data imellem dem).

Problemerne løses i den kommende Yonah ved at have en 16 vejs IIRC L2, altså segmenteret cache ud fra temmelig avancerede algoritmer - ikke mindst fordi Yonah også skal spare på strømmen.
Gravatar #16 - GreatMilenko
21. nov. 2005 12:20
#14 Det har jo ellers længe været kendt at p4 ikke performer særligt godt medmindre programmerne er specielt optimerede til den.
Jeg mener også at hvis man ser tests fra feks. Toms hardware var der stor usikkerhed på om det overhovedet kunne betale sig at køre med hyperthreading da noge tests viste at der var et performance tab, dette var helt tilbage da Intel lancerede hyperthreading. Desværre var der så folk der købte salgsgejlen og mente at deres computer nu kørte næsten dobbelt så hurtigt med hyperthreading.
Gravatar #17 - Subcubes
21. nov. 2005 12:27
# 16
Jeg skrev delen til at indsætte SQL rows i C# - nu ved jeg ca. intet om hvordan HyperThreading virker, men programmet stod konstant med 5 seperate tråde og indsatte til sql.

Jeg var af den tro, at HT "bare" var bedre til at håndtere flere tråde på én gang.

Men jeg kan self tage fejl - det er set før :-)
Gravatar #18 - brislingf
21. nov. 2005 13:21
Folk burde tage deres logiske sans med sig, når man køber hardware hjem til de forskellige projekter. Der findes jo stortset hardware idag i et fornuftigt prisleje som dækker mange forskellige behov.

Med hensyn til sikkerheden på shared cache, havde jeg regnet med at der ville være problemer sikkerheden, havde bare ikke regnet med at koden der gjorde det muligt blev postet så hurtigt som den gjorde til BSDcon.

HT teknologien er fin til spil, noget serverbrug, men ikke alle former for server behov. Jeg kan godt lide den måde den multitasker på når det bare er normalt arbejde uden den store form sikkerhed, men jeg vil ikke bruge den i mission kritiske servere, der vælger jeg noget helt andet efter behovet.
Gravatar #19 - Montago.NET
21. nov. 2005 14:46
HT er ikke specielt godt til spil

Jeg har en P4 650 (3.4ghz HT, 2MB-L2)

Graffik
HT-on : 22.000 3dmark01se
HT-off: 18.000 3dmark01se

DDR2-5400 /4-4-4-10-2
HT-on : 4300 MB/s
HT-off: 5100 MB/s

Til gængeld giver HT pote, når jeg encoder film/musik hvor HT virkelige sparker røv...

kan encode med 10 fps mere med HT end uden ~ 60 fps i Vdub or ~30-40 fps i Flask

self. afhængig af codec osv...

Win2k understøtter så ikke EIST (Speedstepping) hvilket er noget lort... men upgrader nok til Winxp, men har det med XP som med røde hunde :(

min pointe: HT er både godt og skidt
Gravatar #20 - mrmorris
21. nov. 2005 14:54
...men har det med XP som med røde hunde

Gør som os andre, brug classic view og slå resten af XP's gøgl fra, så føles den faktisk helt ok.
Gravatar #21 - AndersAndersson
21. nov. 2005 15:20
#1 ja er der på alle intels cpu'er(nyere cpu'er) undtagen itanium.
Gravatar #22 - aronhenning
22. nov. 2005 15:42
#7 nej der kommer også hyperthreading i Intels dualkernel CPU'er.
Så de kommer til at fremstå som fire virtuelle CPU'er
Gravatar #23 - facey
22. nov. 2005 15:51
nyder min x2 2 kerner med være deres cache self 4400+ :p
ej ved ik har altid været amd fan og lyder da ikke godt det her xbox 360 har shared memory
hva med ps3 den er også flerkernet ?
Gravatar #24 - mrmorris
22. nov. 2005 16:04
#22 Det passer ikke, hvis du ved lidt om hvorfor HT findes og hvordan det virker, ville du ikke sige sådan. Hyperthreading var en del af NetBurst designet og er ligesom P4 derfor en død fisk! HT vil slet ikke give mening på en 14-trins pipeline som Intel's kommende arkitektur er centreret omkring. Der er jo ej heller HT i Intel's nuværende P-M CPU'er.
Gravatar #25 - Montago.NET
22. nov. 2005 21:01
#20 - jeg ved at gøglet kan slås fra... men selvom man gør det, er der stadig ting som kan frustrere en Clean win2k bruger

#22 - der er kun HT i DualCore Extreeme Eddition

#24 - der er ikke HT i P-M fordi deres arkitektur bygger på P3-Tulatin
Gravatar #26 - mrmorris
22. nov. 2005 22:21
#25 Og der er ikke HT i P-II fordi deres arkitektur bygger på Pentium Pro. Hvad er din pointe?
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login