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 Fabio Boneschi pubblicata il 18 Maggio 2009, alle 17:42 nel canale Sistemi OperativiIntelMicrosoftWindows










Forza Horizon 6 Recensione: si vola in Giappone!
HONOR CHOICE AI Note, il registratore IA che si ricarica dallo smartphone
Insta360 GO 3S Pack Retrò: l'azione incontra lo stile delle macchine a pellicola
ASUS ROG Xreal R1: gli occhiali AR per il gaming arrivano sul mercato
Promesse non mantenute per l'AI: Apple finisce sotto indagine in un altro Paese
VoLTE in arrivo per tutti i clienti Iliad, anche per quelli con offerte low cost
Amazon top 10 offerte, cambia tutto nella notte: al 2 e al 4 ci sono super coupon, al top una sorpresa, al 3 un gran bel regalo da 34€
GeForce RTX 5060 Ti a meno di 400€ e tutte le offerte per potenziare il proprio PC spendendo poco
MSI ha realizzato una RTX 5080 a tema The Mandalorian & Grogu
Torna con coupon a soli 34,19€ il caricatore multiplo da 365W che va bene anche coi MacBook, 6 porte, potente e con display
Forza Horizon 6, l'early access è già un successo: numeri record su Steam
La sonda spaziale NASA Psyche ha effettuato un passaggio ravvicinato di Marte
Il rover NASA Perseverance si è scattato un nuovo selfie su Marte, prosegue l'esplorazione del Pianeta Rosso
L3Harris sta sviluppando un generatore termoelettrico a radioisotopi di nuova generazione per le missioni nello Spazio profondo
Arianespace si prepara a lanciare il primo razzo spaziale Ariane 6 con i booster P160C per una missione Amazon Leo
Il nuovo iPad è vicino: ecco quando arriva e quali saranno le novità
Samsung prepara i nuovi Tab S12: il SoC è già confermato









69 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infosmp!=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.
Bello! Chi è? John Fante?
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...
Cos'è che non funziona? Se hai trovato un bug, vieni a segnalarlo nell'apposito thread linkato anche nella mia firma.
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).
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ù
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 si tratta di trucchi, le architetture SMT sono semplicemente il risultato di una direzione di ricerca differente rispetto alle architetture superscalari classiche.
Ovvio in una soluzione del genere lasciare l'hyperthreading attivo è addirittura dannoso.
bla bla bla...
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...
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!
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."
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
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.
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).
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.
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).
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.
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".