PDA

View Full Version : P4 HT


Xylorth
21-02-2005, 13:36
Ciao ragazzi, mi spiegate esattamente cm è la tecnologia P4 HT?
che prestazioni ha?
Mi serve per sistemi.
Grazie;)

MaxArt
21-02-2005, 14:41
Per evitare di fare un discorso che potrebbe risultare ciclopico, ti chiedo quali di questi concetti conosci:
1) cache di una CPU;
2) pipeline;
3) architettura superscalare;
4) branch (mis)prediction.
Potrebbero venirmene in mente altri...

Necromachine
21-02-2005, 14:51
Sul campo posso dirti:

- Nelle applicazioni a singolo thread, non ci sono praticamente differenze prestazionali (forse perdi un 1-2% a causa del kernel multiprocessore, leggermente meno efficiente).
- Facendo girare 2 applicazioni pesanti contemporaneamente (tipo il calcolo di 2 WU seti contemporaneamente), entrambe le applicazioni andranno a circa il 60-70% della potenza della CPU in una singola applicazione (in pratica ogni applicazione perde circa il 30% di efficienza, ma ne vanno 2 contemporaneamente: cioè, se ho un pentium4 a 3ghz e faccio andare 2 programmi insieme, ogni programma è come se singolarmente girasse su un Pentium4 2ghz).

Ovviamente poi il tutto dipende anche da un'infinità di altri fattori.

Xylorth
21-02-2005, 14:59
bhè, quindi è una specie di prescot? che xò va più piano xkè ha l'opzione multi processore?

MaxArt
21-02-2005, 15:04
Originariamente inviato da Xylorth
bhè, quindi è una specie di prescot?:muro:
Ok, ripartiamo da più indietro: sai cos'è un processore?

Xylorth
21-02-2005, 15:07
bhe certo..
Forse mi sono spiegato male.. cmq in fine è un P4 normale?

MaxArt
21-02-2005, 15:55
Originariamente inviato da Xylorth
Forse mi sono spiegato male.. cmq in fine è un P4 normale? Ma che vuol dire che è un P4 "normale"?
Allora, taluni Pentium 4 hanno questa particolarità, cioè la tecnologia HyperThreading (HT). Si tratta di tutti i Pentium 4 a partire dal Northwood 3.06 GHz uscito 3 anni fa (o giù di lì). Quindi, un P4 oggi è "normale" che ce l'abbia.
Ora, quel che dovremmo fare è spiegare in cosa consiste questa tecnologia HyperThreading. Il discorso può essere molto lungo. E' per questo che ti ho chiesto quali termini conoscevi di quelli che ti ho scritto sopra.

jappilas
21-02-2005, 16:07
Originariamente inviato da MaxArt
Per evitare di fare un discorso che potrebbe risultare ciclopico, ti chiedo quali di questi concetti conosci:
1) cache di una CPU;
2) pipeline;
3) architettura superscalare;
4) branch (mis)prediction.
Potrebbero venirmene in mente altri...

uhm, forse conviene mettere anche i concetti di
"context switch" e "thread switch"
"stato" di esecuzione,
"registri"
"thread"
"kernel"
che prescindono dalla "normalità" del processore specifico ;)

perchè sostanzialmente HT consiste in un raddoppio dei registri visibili al codice dei programmi, in modo tale che applicazioni scritte e compilate per il "multithreading" possano eseguire sul processore, 2 dei loro "thread" per volta , potendo contare inoltre su un "thread switching" praticamente di costo nullo...

avere una nozione di quei concetti aiuta a capire anche cosa s' intende quando si dice che tale funzione offre i maggiori vantaggi in presenza di un adeguato supporto da parte del sistema operativo (o meglio del suo "kernel" e delle sue API)

Xylorth
21-02-2005, 16:18
okkey grazie.. che prff de merd che ho nn lo sapeva manko lui..

jappilas
21-02-2005, 17:36
Originariamente inviato da Xylorth
okkey grazie..
prego ;)
per completezza allora ti dovrei almeno accennare al perchè intel ha introdotto una funzione simile... l' idea è di massimizzare la percentuale di utilizzo delle risorse interne, tenendo attivi più thread di uno stesso processo
- da un lato per via della pipeline del P4 con 6 fasi di scheduling e 2 fasi di execute per le istruzioni (come "finestra" del main loop di riordino-esecuzione, relativamente ampia) e l' "instruction pool" (schiera delle unità di esecuzione vere e proprie, ) capace di eseguire 1 istr. di LOAD, 1 di STORE, 4 di calcolo intero semplici, 1 di calcolo intero complessa, 1 MOV, 1 di calcolo FPU/SIMD (MMX o SSE)
data questa struttura, a seconda del flusso di istruzioni, la probabilità che tutte le risorse (unità di calcolo, buffer) siano completamente sature in ogni ciclo di clock, è abbastanza remota: poniamo il caso (estremo) per un centinaio di cicli arrivino solo istr tipo STORE e intere complesse... oppure solo istruzioni FPU... le altre unità, , le relative code sulla rete dei registri ecc, resteranno del tutto inattive ...le probabilità aumentano , se il flusso di istruzioni è più corposo, e al tempo stesso differenziato, ma soprattutto se composto di istruzioni non vincolate, nel senso prive di dipendenze reciproche
-bene, dall' altra parte, in un programma multithreaded, due thread separati, magari anche impegnati per funzioni diverse del programma stesso, dovrebbero costituire un buon flusso di istruzioni al tempo stesso svincolate (proprio per i criteri di design del SW mutlthread) e per tipo differenziate (statisticamente, per il fatto di corrispondere a cpu state separati)
da qui, si arriva a come è ingegnerizzato, un programa multithread, e alla thread safety...
che prff de merd che ho nn lo sapeva manko lui..
mi par di capire che il 3+2 sia pernicioso nei confronti dei programmi e metodi di insegnamento... :rolleyes:

Xylorth
21-02-2005, 18:09
mi par di capire che il 3+2 sia pernicioso nei confronti dei programmi e metodi di insegnamento... :rolleyes:

nn ho capito la frase ..

jappilas
21-02-2005, 18:20
Originariamente inviato da Xylorth
nn ho capito la frase ..
ehm ho dato per scontato parlassi di un tuo prof di uni, e quindi mi riferivo al nuovo ordinamento universitario...
che da noi è ritenuto all' unanimità dannoso nei confronti dei nuovi studenti (tra i quali mi ritengo fortunato di NON rientrare) :O

Xylorth
21-02-2005, 18:37
no delle superiori :)