Newsgroup: it.comp.hardware.cpu
Titolo: Hyper-Threading Value

Uno scambio di opinioni in ML di Linux kernel tra Alan Cox e Linus
Torvalds, su cui riflettere.
Alax Cox:"HT for most users is pretty irrelevant, its a neat idea but the
benchmarks don't suggest its too big a hit."
Linus Torvalds:"HT is _wonderful_ for latency reduction.","why people
think 'performace' means 'throughput' is something I'll never understand.
Throughput is _always_ secondary to latency, and really only becomes
interesting when it becomes a latency number."

 interesting when it becomes a latency number."
E qui c'è invece uno che ha capito tutto... per la maggior parte degli 
utenti e per la maggior parte del tempo di TUTTI gli utenti, quello che dà 
veramente *piacere* è la reattività che il PC dimostra ai comandi, agli 
infiniti comandi che durante una giornata tutti sparano al computer, e la 
differenza tra HT e non-HT salta agli occhi in modo brutale.
Certo poi può far piacere sapere che la propria CPU fa SuperPI in 33 secondi 
invece che in 40, ma non è che uno si compri il PC per fare SuperPI tutto il 
giorno... e anche parlando di applicativi, credo siano pochi quelli che 
passano la giornata a fare elaborazioni di 4 ore che su AMD richiedono solo 
3 ore e 45.
Ho tentato qualche tempo fa di spiegare qui questo concetto dopo aver visto 
per la prima volta cosa implicasse avere l'HT, senza particolare successo, e 
devo dire che Torvalds l'ha fatto in una maniera esemplare, allo stesso 
tempo succinta e precisa.
E' proprio la sensazione di assenza di latenza che ti fa dire "wow" con un 
P4, anche su degli assemblati senza alcuna pretesa, con memoria standard, 
cas3, tutto tranquillissimo, ed è proprio la sensazione della presenza di 
latenza che ti fa dire: "capperi, credevo che 'sto A64 3500+ con tutti i 
benchmarks a suo favore mi avrebbe fatto più impressione... avrò mica 
sbagliato qualcosa?" (poi ci si consola con SuperPI che fa 42 invece di 43 e 
si va a dormire felici). 

 e si va a dormire felici).
ROTFL... tu non sai neanche che cos'è la latenza...
-- 
Saluti
Alec (27,72+,CT)
Powered by AMD
Athlon64-D0 3900+ 

 differenza tra HT e non-HT salta agli occhi in modo brutale.
Semmai Torvalds considera di piu gli aspetti che riguardano
il S.O. in se, mica stava parlando degli utenti in particolare.
L'hyperthreading permette di abbassare le latenze
*rispetto alla stessa cpu senza hyperthreading*
perche anche se una cpu virtuale e' "bloccata"
(da un task ad alta priorita o da un ISR) l'altra risulta disponibile
( o nel caso peggiore sta eseguendo un altro thread ad alta priorita
   o un altro ISR).
Questo ovviamente torna utile anche quando qualcuno codifica i device
driver a caXXo (perche magari vuole vincere nei benchmark a scapito
della reattivita' sotto carico) oppure se si settano male
le priorita dei task  o se si usano programmi che per un motivo
o per l'altro trashano il sistema quando vengono spinti al limite.
Ma se non si rientra nei casi "limite", un utente normale i
vantaggi dell'hyperthreading li vede assai raramente;
di solito li vede quando si setta ad alta priorita un qualche task
che richiede molto tempo per essere completato, pensando
che questo riduca significativamente i tempi
(lo fa in parte, ma  a scapito della reattivita se si usa un
  sistema monoprocessore/singlethread, mentre con l'hyperthreading
  hai l'altra cpu virtuale che ti salva la giornata).
Nota inoltre che gli stessi vantaggi dell'hyperthreading (e molti
altri in termini di sicurezza e di prestazioni) li si ha anche con
un sistema multiprocessore oppure multicore, non e' un caso se sia
AMD che Intel appena possibile hanno puntato entrambe su soluzioni
dual core (specialmente perche l'implementazione del simultaneous
multithreading che Intel chiama hyperthreading non e' che sia
un capolavoro della tecnologia, e' limitata da
troppi colli di bottiglia, riesce solo a compensare in parte
i difetti di pipeline ed ALU, ma risulta strozzata a livello
di cache L1 e di decoder delle istruzioni).
L. Micheletto

 di cache L1 e di decoder delle istruzioni).
Sì, certo, intanto il risultato è che la differenza c'è, eccome.
L'unico VERO atout ENORME di AMD è che un Winchester o un Venice consumano 
un terzo di un Prescott, questo è il vero vantaggio ENORME di AMD su Intel. 
L'altro è che costano meno, un bel po' meno se uno somma CPU e motherboard, 
ma dire che l'HT è ininfluente vuol dire o non essere obiettivi o non aver 
mai usato un PC (anche da Ipercoop) con HT. 

 un motivo in più per passare al multicore.
Mah, AMD penalizzata mi pare un po' grossa.
Visto che Intel abbandonerà presto Netburst, vorrei tanto vedere 
l'implementazione di HT su un'architettura a pipeline corte.
Probabilmente non vedremo più HT sulle cpu dual core che verranno 
prodotte con l'architetture del Pentium-M.

 allo stesso tempo succinta e precisa.
Anche gli altri hanno cercato di farti capire un concetto fondamentale,
che tu non vuoi proprio capire: l'HT serve semplicemente per cercare di
far meglio del task manager nella gestione dei task. E' inutile dire che
la flessibilità del task manager è maggiore rispetto alla stessa cosa
fatta in hardware, per cui:
Se hai qualche *NIX:
nice +15 programmachevuoivadapiùlento nice -15
programmachevuoivadapiùveloce
Se hai windows, apri il task manager, clic destro sul task a cui vuoi dare
minore priorità, ed ecco che il pc non freeza più. Faccio cose simili
quando devo compilare qualcosa di grosso, e voglio un sistema reattivo, e
mi ci trovo bene. Ah, e ho un "obsoleto" athlonxp 2800+. Ovviamente non si
possono fare gli stessi discorsi con un processore dual core, in quanto
lì hai effettivamente un altro processore in idle da poter utilizzare, e
poter bilanciare tra i due core i vari lavori. E comunque, a dir la
verità, più che desiderare l'HT del P4 desidero enormemente più il
cool'n'quiet della AMD: non ne posso più di avere una stufetta a casa! :)
ciao
-- 
Dont         |            _             _ 
understimate |   __ _ _ _| |_ __ _ _ _ (_)
the power    |  / _` | ' \  _/ _` | ' \| |
of...        |  \__,_|_||_\__\__,_|_||_|_|

 un motivo in più per passare al multicore.
La realta' e' molto piu complessa di una semplice corsa alla
frequenza piu elevata.
Ovviamente se la tecnologia disponibile permette di salire di
frequenza, lo si fa; ma per quanto riguarda gli x86
*e' dai tempi dei 286* che si punta ad aumentare l'IPC
non appena c'e' spazio extra disponibile
ed e' dai tempi del 486 che si inseriscono/allargano
le cache per aumentare le prestazioni.
I progettisti di AMD ed Intel hanno scelto percorsi
ben diversi per alzare le prestazioni; AMD ha *scelto*
di non puntare sull'HT ed ha fatto bene, perche Intel
che invece ci aveva scommesso sopra si e' autoinflitta
un bel po di danni a causa di questo.
Per rendersi conto di questo basta guardare il P4 Willamette
(il P4 "vorrei ma non posso" quanto a funzionalita
  disattivate oppure previste ma non implementate), l'HT
non e' stato implementato su quella cpu ma le sue ALU
*urlano* "siamo state progettate per l'HT ma qualcuno
ha fatto il passo piu lungo della gamba".
Se fosse stata AMD ad uscire con una cpu come il P4
ora sarebbe gia uscita da un pezzo dal settore degli x86.
A suo tempo AMD ha puntato decisamente prima su un IPC
elevato e sin dai primi dettagli resi pubblici riguardo
gli Opteron/Athlon64 fu messo in evidenza che poi in un secondo
tempo era prevista l'evoluzione verso cpu dual core
e tutto questo ben prima che Intel annunciasse l'HT.
L. Micheletto

 con l'architetture del Pentium-M.
Se la CPU è dual-core o multi-core, l'HT perde di importanza, hai già una 
seconda CPU reale da usare. Comunque staremo a vedere, io parlo di adesso, 
cosa fare adesso, cosa si potrà fare tra uno o due anni lo discuteremo 
allora. :-) 

 cool'n'quiet della AMD: non ne posso più di avere una stufetta a casa! :)
Adesso siamo già più d'accordo: io sto infatti dibattendomi tra 
l'aspirazione ad una CPU "fresca" e l'innegabile reattività del P4 e pendo 
per la seconda, ma questa è una mia inclinazione e capisco benissimo la tua 
preferenza per il cool'n'quiet.

 e tutto questo ben prima che Intel annunciasse l'HT.
E intanto l'HT esiste da anni e la gente (l'80% della gente) compra Intel.
Non credo siano tutti dei cretini.

 benissimo la tua preferenza per il cool'n'quiet.
Su "innegabile" avrei i miei dubbi, ma tanto si è capito che è
impossibile scrollarti dalla tua infinita sicurezza sull'argomento :)
In ogni caso, valuta bene il fattore "dissipazione e acustica":
desidererei enormemente avere un athlon64 qualsiasi non per le
prestazioni, ma per togliermi di mezzo questa ventola che fa un casino
assurdo...


 allora. :-) 
Io non ho parlato di dual core o multi core, ho solo detto che quando 
Intel passerà di nuovo ad architetture con alto IPC, allora vedrai che 
HT non sarà più nemmeno pensabile.
Inoltre, a detta di Intel stessa, HT su cpu dual core non perde di 
importanza: gli ultimi xeon per server sono dual core con ht abilitato. 
Il so vede 4 cpu logiche.
Ironia della sorte, per una errata programmazione (e non un bug, ci 
tengo a precisare) dello scheduler di Windows si possono utilizzare solo 
due delle cpu logiche disponibili in contemporanea. Molto sciocco, no?

L'ht quindi non ti permette, se ho ben capito, di dare massima priorità ad
un programma visto che comunque l'ht "modifica la priorità".
Se volessi dare massima priorità (realtime?) ad un processo rendendo il pc
quasi inusabile con ht non potrei?
Allora preferisco impostarmela da sola la priorità!
Se volessi un pc "che fa quello che gli pare" userei windows... invece uso
linux, se volessi programmi che fanno quello che gli pare userei Visual
Basic invece programmo in c e c++....
Fortunatamente mi pare che l'ht sia possibile disabilitarlo alemno da bios
quindi se avessi un p4 io lo disabiliterei; checchè ne dica Linus.
Per l'utonto windows (che non dovrebbe usare il pc) l'ht è ottimo IMHO.
Per l'utente esperto...

 Linus.
Beh, secondo me non ti conviene lo stesso. E' comunque un modo per sfruttare
i cicli a vuoto del P4.
MaxArt

 delle cpu logiche disponibili in contemporanea. Molto sciocco, no?
Bah, probabilmente il problema verrà risolto ben prima che la gente lo 
percepisca. 

 assurdo...
Mah, c'è del vero in quel che dici, ma non è solo la ventola della CPU a far 
casino, c'è anche quella della scheda video, adesso ci sono quelle sul 
chipset a 10.000 giri, c'è quella dell'alimentatore, ci sono quelle del case 
che se non sono più che ottime fanno da sole (anche da sola) più casino di 
tutte le altre messe insieme 

 casino di tutte le altre messe insieme
Aggiungo: se adesso dovessi farmi un Media Center dove non vorrei avere 
quasi alcuna ventola, allora sì che la scelta sarebbe certa e non ci 
penserei un secondo ad usare un Venice o un Winchester, perché in un sistema 
simile l'HT non avrebbe quella gran importanza, non sentire le ventole 
mentre si guarda un DVD invece sarebbe fondamentale. 

 non si porrebbe, ti pare?
A parte le varie imprecisioni che ti sono state contestate... parlami di 
questo sistema operativo con scheduler degno di tale nome, che modifica 
la priorità dei processi a sua scelta. Con documentazione
Ah. Il fatto che Windows (non so per certo quali Windows, XP di sicuro) 
lo faccia è da considerarsi marginale?
Pannello di controllo -> Sistema -> Avanzate -> Prestazioni 
(Impostazioni) -> Avanzate.
Ciao
Davide

 o più).
Qualcuno più esperto di me faceva notare che non è in caso di branch 
miss che l'HT ci guadagna. Non ho le conoscenze adeguate per parlarne 
comunuqe. Il problema che si stava ponendo Massimo, almeno per quello 
che ho capito io, non è un raffronto AMD o Intel, ma più in generale 
simultaneous multithreading o no su singole CPU (a un core). Il problema 
se vuoi lo puoi estendere agli UltraSparc, agli IBM POWER o al 
triplo-core PowerPC, ciascuno con SMT che Microsoft monterà sull'Xbox 
360 (e tiro in mezzo pure Microsoft, oltre ad Intel, ragione in più per 
cui molti si sentiranno partigiani).
Se vuoi continuare sul binario Intel-AMD, sempre rimandando ai test 
citati prima, un Intel con HT con un lavoro parallelizzabile è più 
efficiente di un Athlon 64 di pari fascia.
Ciao
Davide

 (Impostazioni) -> Avanzate.
Questo non c'entra assolutamente nulla con le priorità dinamiche dello 
scheduler a breve termine.

 percepisca. 
Già... questo si può risolvere, mentre il problema delle priorità 
necessita di nuovo hardware per essere risolto.
Fatto sta che per tutte e due le cose si deve mettere mano allo scheduler...

preferisco.
C'è una contraddizione in queste due frasi.
Sui P4 l'HT permette di guadagnare (in prestazioni e reattività)
perché permette di recuperare alcuni dei fottilioni di cicli che il P$
perde a causa delle pipeline lunghissime - tutte le volte che c'è uno
stallo, invece di vuotarle del tutto e aspettare che si ricarichino,
le vuota in media per metà e comunque ha già in RAM/cache i dati
dell'altro thread.
Il K7/K8 ha una pipeline molto più corta, quindi non ha enormi
problemi di cicli sprecati. Per quel che riguarda la reattività...
come già detto in altro thread, vorrei vedere dei test seri sul kernel
di linux 2.6, con supporto alla preemption, scheduler O(1) e via
dicendo, ho come l'impressione che Win potrebbe fare qualcosina di
più...
-- 
ZHELGADIS THE LIGHTBRINGER (ICQ 33134824)
BAG#008,DPPSJ#000,BAT#013,TFC#012,GAM#026,ZZZZ#027,CID#027,PAN#015
"Aspettare non è mai stato un problema, per me.
Posso trascorrere piacevolmente ore e ore con l'aiuto di un buon caffè"

 più...
Ho la stessissima impressione, ma siccome per me linux non è un'alternativa 
e Win è quello che è, allora devo scegliere la cosa che mi dà il massimo 
delle prestazioni nelle condizioni date.
Dei test seri su kernel linux a me non importa nulla, perché io lo userò con 
Windows, non sto combattendo una guerra di religione, sto cercando di 
decidere cosa comprare e usare per i prossimi due o tre anni.
Comunque, nota che il tizio che ha parlato di grossi vantaggi in termini di 
latenza dell'HT è un certo Linus Torvalds, non so se sai chi è... :-))) e se 
lo dice lui non credo stesse riferendosi a XP-Pro SP2... e molto 
probabilmente, conoscendo il tipo, i test di cui parli tu, lui li ha fatti 
personalmente! 

 decidere cosa comprare e usare per i prossimi due o tre anni.
Ma se sei così convinto delle tue idee, perchè non compri uno di quei
fantastici P4HT e la smettiamo qui? :)
Tanto nessuno cambia le proprie idee, ho notato.


 PC su cui devono in qualche modo coesistere migliaia di applicativi diversi.
Era un discorso su applicazioni *reali* per farti capire la differenza
tra l'ottica di quando si parla di applicazioni utente oppure di
roba a livello di S.O., niente di piu e niente di meno.
Con RTAI quelle latenze le ottieni *indipendentemente* da cosa gira "sopra"
perche RTAI fa girare come "processo idle" (di RTAI) praticamente
tutto il resto del S.O. e le applicazioni che ci girano sopra.
Ritornando al discorso sulla "reattivita", quando attivi HT non e' che
hai tutti benefici, in base ai thread che girano aumenta il trashing
delle cache ecc. ecc. quindi per certe applicazioni ti ritrovi ad avere
elaborazioni piu lunghe rispetto al caso di HT disabilitato ed allora
che fai ?
Abiliti/disabiliti l'HT in base a come ti sembra giri il sistema ?
E' lo stesso "problema" che vedi tu riguardo al settaggio delle
priorita dei processi, ma riproposto in chiave diversa.
Per questo Cox non vede tale gran differenza con o senza HT
a livello di *applicazioni* per la maggior parte degli utenti.
Tieni presente che se ricordo bene Alan Cox lavora per RedHat, una
delle aziende specializzate da anni nell'utilizzo di Linux in
ambito aziendale, ovvero "grandi elaborazioni" e tutta la roba
connessa ad esse, qualcosina a riguardo penso ne sappia pure lui
visto che riesce pure a camparci sopra su tali argomenti.
L. Micheletto


Allora aspetta gli A64 X2, da retta a me...:)))))

 ha scritto nel messaggio 
news:k5Gje.1419739$35.52...@news4.tin.it...

Hai ragionissima, ma lì salta fuori il discorso prezzo, parliamo di 600 euro 
o peggio, non so se abbia proprio senso... 

 600 euro o peggio, non so se abbia proprio senso...
Per il peso che dai alla reattività del sistema, mi pare che possa farci un
pensierino, sul serio... tanto ci risparmi in corrente, mi sa!
Comunque, questi sono gli ultimi prezzi AMD per i processori boxed:
http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51_104_609,00.html
Come vedi, il prezzo da noi in euro non si discosta dal prezzo in dollari in
lotti da 1000, quindi un X2 4200+, che in lotti da 1000 viene 537$, da noi
verrà intorno ai 530 euro...
MaxArt

"MaxArt" <maxart.y...@ZEROSPAMtiscali.it> ha scritto nel messaggio 
news:428fd6cb$0$17091$5fc...@news.tiscali.it...

A parte che in quel link l'X2 4200 non riesco a vederlo, volevo farti una 
domandina facile facile (solo che non riesco ad avere la certezza): una 
motherboard P5P800 con chipset 865PE supporta i P4 6xx senza problemi?
Ti spiego il perché della domanda: io dò molta importanza alla reattività, 
ma anche al rapporto prezzo/prestazioni: in quel senso, al momento attuale, 
secondo me il meglio si ha con un P4 630 (200 euro), che è un 64bit, ha 
l'Intel SpeedStep, ha l'HT (naturalmente) e anche se mi fa solo 40 secondi 
sul SuperPI non mi suicido.
Siccome siamo in un periodo di transizione e le cose belle costano una 
cifra, starei orientandomi verso una soluzione ponte a basso (si fa per 
dire) costo: P5P800 + 630 + 2GB RAM DDR400 tranquilla + (con quanto 
risparmiato su CPU e motherboard) WD Raptor 74GB 10000 rpm.
Mi salvo la AIW9800SE che mi va ancora benissimo, mi tengo i due dischi da 
120GB EIDE che mi vanno altrettanto bene e ci aggiungo un disco velocissimo 
per S.O. e applicativi, coi 2GB di RAM qualunque cosa faccia lo swap su HD 
me lo dimentico e aspetto un po' che i prezzi dei dual-core si umanizzino e 
che mi venga voglia di buttar via la mia AIW9800SE per una PCI-E.
Che ne dici?
Non dirmi che posso risparmiare con un Winchester, perché non ha l'HT e poi 
non saprei bene su che mb buttarmi (con l'NF3 e socket 939).

 e poi non saprei bene su che mb buttarmi (con l'NF3 e socket 939).
La "classica" MSI K8N Neo2 Platinum o Diamond...
MaxArt