Intel Hyper-Threading e Microsoft Windows 7

Intel Hyper-Threading e Microsoft Windows 7

Alcune ottimizzazioni del codice di Microsoft Windows 7 promettono migliori prestazioni con processori dotati di tecnologia Intel Hyper-Threading

di pubblicata il , alle 17:42 nel canale Sistemi Operativi
IntelMicrosoftWindows
 
69 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
eTomm18 Maggio 2009, 23:47 #51
Originariamente inviato da: CaFFeiNe
beh sirus, correggimi se sbaglio

smp!=smt
ma smt=smp

nel senso

che un multiprocessore, guadagnera' sempre da un applicazione multithread...
indipendentemente dai core fisici o logici che siano....

mentre un processore con hyperthreading, non si avvantaggia (per ovvi motivi) allo stesso modo...


per dire un esempio
prendiamo un corei7 con quattro core e hyper
e prendiamone uno identico a 8 core

QUESTE OTTIMIZZAZIONI microsoft, anche se vanno ad aggiustare la tecnologia hyperthreading, daranno vantaggi anche all'8 core nativi giusto?


quindi in questo caso mi sembra "sbagliato" dire
windows migliorera' per l'hyperthreading, ma "windows migliorera' l'smt in generale"


No è sbagliato.

Windows in presenza di core nativi lavorerà come ha sempre lavorato, mentre in presenza di hyperthreading abbinerà solamente certi applicativi (o flussi di codice) sui due core logici. Non tutti i codici vengono eseguiti decentemente su un architettura SMT.
Mifune18 Maggio 2009, 23:48 #52
Originariamente inviato da: prisoner9
I consigli del vecchio Pork Chop Express sono preziosi, specialmente nelle serate buie e tempestose, quando i fulmini lampeggiano, i tuoni rimbombano e la pioggia viene giù in gocce pesanti come piombo. Basta che vi ricordiate cosa fa il vecchio Jack Burton, quando dal cielo arrivano frecce sotto forma di pioggia e i tuoni fanno tremare i pilastri del cielo. Sì, il vecchio Jack Burton guarda il ciclone scatenato proprio nell'occhio e dice: "Mena il tuo colpo più duro, amico. Non mi fai paura."


Bello! Chi è? John Fante?
Dott.Wisem19 Maggio 2009, 00:24 #53
Originariamente inviato da: cjack
Caspita, ho appena installato 7 e ho notato subito il suo primo "neo"......è stato definitivamente tolto il mitico "Classic Startmenu". Sembra che si possa usare soltanto lo startmenu con lo stile nuovo E'un vero peccato perché l'altro era molto più veloce da usare, semplice semplice. Ci dovremo abituare........
Ancora con sto menu classico?? Ragazzi, ma perché fossilizzarci il cervello con un'interfaccia grafica risalente ai tempi del Windows 95... Dai, un po' di elasticità mentale, altrimenti va a finire che ci rincitrulliamo prima del tempo!

Ma poi come fai a dire che il menu classico era più veloce da usare? Ma hai mai provato a digitare 3 letterine dell'applicazione che vuoi lanciare, nel menu start di Vista/7 ? Senza contare che le applicazioni più usate di recente vengono automaticamente inserite nella parte sinistra del menu d'avvio...

Certo che se ti ostini ad usare il menu start di Vista andando ogni volta in "Tutti i programmi" per cercare il programma da lanciare, stile menu classico, allora stai fresco...

Infine, se ti fa più comodo, le applicazioni più usate le puoi anche fissare sulla nuova barra di Win7...
Dott.Wisem19 Maggio 2009, 00:29 #54
Originariamente inviato da: cjack
Altra cosa che speravo risolta rispetto a Vista: visualizzazione personalizzata dei folder.......non funziona. Speravo anche solo in questa funzionalità, e invece non funziona!! Che tristezza.........

Cos'è che non funziona? Se hai trovato un bug, vieni a segnalarlo nell'apposito thread linkato anche nella mia firma.
MiKeLezZ19 Maggio 2009, 00:49 #55
Originariamente inviato da: sirus
Non sono del tutto d'accordo. Lavorare con un’architettura SMP (multiprocessor) non sono necessariamente equivalente a lavorare con un’architetture SMT (multithreaded).
Il nome è diverso, diversa è l'implementazione, ma il fine è lo stesso.

Il simultaneous multithreading è l'usare più istruzioni contemporaneo nello stesso core.

Il symmetric multiprocessing è l'usare diversi core per più istruzioni contemporanee.

Il succo è che per entrambi sono necessarie diverse istruzioni contemporanee, quindi un software granulare e la cui granularità di istruzioni non sia poi di intralcio (un es. lo esplico un po' sotto).

Inoltre, definire HT un "trucco" per far lavorare i core non è più corretto. Se questo poteva essere vero con l’architettura Netburst, con l'architettura Core questo non è più vero.
"Artificio" non significa "trucco", può essere "idea, invenzione, trovata, accorgimento, escamotage, stratagemma", ma soprattutto "espediente" (il termine che intendevo).
L'HT è un espediente che, a fronte di un deficit prestazionale con applicazioni single-threaded (e qualche altro problemino), apporta un benefit relativamente grande con quelle multi-threaded.
Di fatto, sia nel caso di Netburst che Nehalem, è utilizzato per sfruttare al meglio le CPU, ma mentre nel primo caso c'era una vera e propria necessità (data dalla lunga pipeline, al contrario dei più scattanti Athlon, e poi c'era l'aggiunto beneficio le CPU dell'epoca fossero single-core, e quindi guadagnavano parecchio anche nei task di ufficio), nella sua seconda rivisitazione su Nehalem è più come un facile sovrappiù da implementare (qualche transistor in più, il tutto però poi sperando nel lavoro dei developers (ovvio che se non escono applicazioni in grado di sfruttare gli 8 core, i 16 core grazie al SMT ce li possiamo fare al padellino).
HT è comunque anche criticato, non è che sia la panacea di tutti i mali (anzi). Aveva molto più senso una volta (P4), quando invece era molto criticato. Buona infatti l'idea di riutilizzarlo in Atom.

Inoltre, tecniche del tutto comparabili al HT (per certi versi superiori), vengono adottate anche da IBM e Sun nei loro processori.
Non si tratta di trucchi, le architetture SMT sono semplicemente il risultato di una direzione di ricerca differente rispetto alle architetture superscalari classiche.
Non sono al corrente di ciò, mi auguro comunque tu non voglia confrontare SIMD con VLIW con MIPS o che altro... L'Hyper Threading è molto più vicino a una semplice soluzione MIMD.

Microsoft ha dichiarato di aver introdotto delle migliorie per supportare al meglio la tecnologia HT ritornata in auge; non si tratta di sistemare un bug dello scheduler, si tratta di supportare pienamente una tecnologia, e se questo non è un miglioramento...
In realtà si tratta proprio di sistemare un bug dello scheduler: se abbiamo 4 core fisici e 4 core logici, uno scheduler decente che abbia da allocare 4 thread dovrebbe caricare solo i 4 core fisici (o tutt'alpiù usare una qualche logica di controllo che lasci uno fisico libero per eventuali altri...)... uno scheduler invece buggatino caricherebbe semplicemente i primi 4 core che trova... ovvero 2 fisici e relativi 2 logici, lasciando quindi gli altri 2 core fisici a idlare.
Ovvio in una soluzione del genere lasciare l'hyperthreading attivo è addirittura dannoso.

Originariamente inviato da: eTomm
No è sbagliato.

bla bla bla...
Originariamente inviato da: eTomm
Meglio quotare qualcuno che dice qualcosa di sensato va.

Prima di te ho letto una sfilza di commenti di veri e propri GENI, gente che mi domando come cazzo faccia ad avere tempo a postare su HU mentre sta progettando il nuovo OS che spazzerà via Mac, Linux e Windows o il nuovo procio da abbinarci.

Abbiamo Bill Gates con noi... peccato "eGuru", come sempre succede, si dimentichi di andare un po' nel tecnico... giustificare... tanto fumo...
Tasslehoff19 Maggio 2009, 00:57 #56
Nooo vi prego basta con l'HT, non ne posso più di perdere una marea di tempo in ricerche alla Sherlock Holmes ogni volta che devo fare delle verifiche per il licensing di qualche macchina...

a: "Ok abbiamo 4 cpu"
b: "Si ma quanti socket?"
c: "1? 2? 4? E quanti utilizzati?"
a: "Ma sono cpu dual core o quad core?"
b: "Aspetta... potrebbero essere Xeon single core..."
c: "Ok fermi tutti... un bel respiro... qualcuno cerchi la fattura di acquisto o l'ordine"
a: "No perchè il prodotto X conta le licenze per socket... ma il prodotto Y le conta per core... il prodotto Z per utenti, ma a patto che i socket siano meno di N"
b: "Fermi ragazzi ci stiamo ingarbugliando..."
c: "E se fossero due schifosissimi P4 Xeon con HyperThreading?!?!?"
a: "Tra l'altro se ci fosse l'HyperThreading non è detto che sia attivo... ricordate dal cliente XYZ dove tutti i server avevano hyperthreading disattivato da bios?"
a, b, c si guardano con occhi pallati: "NOOOOOOO!!!!!!"
a: "Ok qualcuno scarichi la versione giusta dell'IBM DSA..."
b: "Lascia perdere... non sono macchine IBM"
c: "Oh santa polenta... Ok allora scendiamo in sala, apriamo lo chassis e guardiamo quante cazzo di cpu ha quella maledetta macchina e quanti socket"
a: "Non si può è un blade e va spento tutto prima di toglierla"

a, b, c..... SBONK!

Ecco la scena tipo in una azienda a caso quando si tratta di fare l'inventario dell'hw per il conteggio delle licenze...
Vi prego, torniamo alle buone vecchie cpu single core... vada per i multicore, quelli son facili da individuare... ma l'HyperThreading no!!!! E' una piaga biblica!
User11119 Maggio 2009, 07:02 #57
xp non aveva la stessa potenzialità?
rutton19 Maggio 2009, 08:44 #58
Originariamente inviato da: User111
xp non aveva la stessa potenzialità?


Infatti. L'Hyper-Threading è supportato sin dai tempi di XP:

Windows XP e la tecnologia Hyper-Threading
http://support.microsoft.com/kb/810231
"in Windows XP Home è possibile utilizzare al massimo un (1) processore fisico. Poiché, tuttavia, è supportata la funzionalità Hyper-Threading, il sistema operativo è in grado di sfruttare il secondo processore virtuale."
User11119 Maggio 2009, 08:58 #59
Originariamente inviato da: rutton
Infatti. L'Hyper-Threading è supportato sin dai tempi di XP:

Windows XP e la tecnologia Hyper-Threading
http://support.microsoft.com/kb/810231
"in Windows XP Home è possibile utilizzare al massimo un (1) processore fisico. Poiché, tuttavia, è supportata la funzionalità Hyper-Threading, il sistema operativo è in grado di sfruttare il secondo processore virtuale."


ok in questo caso ovvio che è diversa la cosa qui bisogna gestirli almeno 4 fisici e 4 virtuali
sirus19 Maggio 2009, 10:00 #60
Originariamente inviato da: CaFFeiNe
per dire un esempio
prendiamo un corei7 con quattro core e hyper
e prendiamone uno identico a 8 core

QUESTE OTTIMIZZAZIONI microsoft, anche se vanno ad aggiustare la tecnologia hyperthreading, daranno vantaggi anche all'8 core nativi giusto?

quindi in questo caso mi sembra "sbagliato" dire
windows migliorera' per l'hyperthreading, ma "windows migliorera' l'smt in generale"

Non è affatto detto che le modifiche allo scheduler per migliorare il supporto al SMT vadano a migliorare le prestazioni in ambito SMP.

Originariamente inviato da: MiKeLezZ
Il nome è diverso, diversa è l'implementazione, ma il fine è lo stesso.

Il simultaneous multithreading è l'usare più istruzioni contemporaneo nello stesso core.

Il symmetric multiprocessing è l'usare diversi core per più istruzioni contemporanee.

A questa stregua possiamo considerare ILP e TLP sullo stesso piano, l’obiettivo è sempre lo stesso.
L’obiettivo è il medesimo, il nome è diverso, l’idea alla base è diversa, l’implementazione è diversa ed anche la gestione è differente.

Il succo è che per entrambi sono necessarie diverse istruzioni contemporanee, quindi un software granulare e la cui granularità di istruzioni non sia poi di intralcio (un es. lo esplico un po' sotto).

Originariamente inviato da: MiKeLezZ
"Artificio" non significa "trucco", può essere "idea, invenzione, trovata, accorgimento, escamotage, stratagemma", ma soprattutto "espediente" (il termine che intendevo).

L'HT è un espediente che, a fronte di un deficit prestazionale con applicazioni single-threaded (e qualche altro problemino), apporta un benefit relativamente grande con quelle multi-threaded.

Ti sbagli, SMT (TLP), di cui HT è un’implementazione, è un’idea degli anni 70 e non è nata per sopperire ai problemi riscontrati con le applicazioni single-threaded ma è nata come sviluppo parallelo dell’ILP.
Se HT è un espediente allora consideriamo espedienti anche tutte le tecniche di ILP e magari anche il pipelining delle istruzioni.

Originariamente inviato da: MiKeLezZ
... il tutto però poi sperando nel lavoro dei developers (ovvio che se non escono applicazioni in grado di sfruttare gli 8 core, i 16 core grazie al SMT ce li possiamo fare al padellino).

Questo non è del tutto corretto, il processore dispone della circuiteria necessaria per tentare di sfruttare HT anche quando non si fa uso esplicito del parallelismo (ci sono implementazioni di SMT in processori differenti dai Pentium 4, Pentium XE, Core i7 ed Atom che fanno decisamente meglio da questo punto di vista).

Originariamente inviato da: MiKeLezZ
HT è comunque anche criticato, non è che sia la panacea di tutti i mali (anzi). Aveva molto più senso una volta (P4), quando invece era molto criticato. Buona infatti l'idea di riutilizzarlo in Atom.

Non sono al corrente di ciò, mi auguro comunque tu non voglia confrontare SIMD con VLIW con MIPS o che altro... L'Hyper Threading è molto più vicino a una semplice soluzione MIMD.

Se parliamo di SMT, esistono implementazioni dell’architettura MIPS che dispongono di SMT a 4 vie, IBM coni suoi POWER5 e POWER6 supporta SMT a 2 vie e se proprio vogliamo parlarne anche gli Intel Itanium fanno uso di una specie di SMT pur essendo fondamentalmente dei VLIW.
SMT è un’idea buona a priori dal mio punto di vista, non potrà sempre portare benefici (tranne nei casi in cui la cache fa da collo di bottiglia) ma nella maggior parte dei casi è un passo avanti.

Originariamente inviato da: MiKeLezZ
In realtà si tratta proprio di sistemare un bug dello scheduler: se abbiamo 4 core fisici e 4 core logici, uno scheduler decente che abbia da allocare 4 thread dovrebbe caricare solo i 4 core fisici (o tutt'alpiù usare una qualche logica di controllo che lasci uno fisico libero per eventuali altri...)... uno scheduler invece buggatino caricherebbe semplicemente i primi 4 core che trova... ovvero 2 fisici e relativi 2 logici, lasciando quindi gli altri 2 core fisici a idlare.
Ovvio in una soluzione del genere lasciare l'hyperthreading attivo è addirittura dannoso.

Chiamalo bug, io dico che semplicemente Windows non disponeva ancora di un supporto decente al SMT.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^