Core Qaud single threaded vs Dual core hyper-threading [duplicato]


10

Diciamo che abbiamo due CPU, una è Quad Core 3.2 Ghz con 4 core e abbiamo un Dual Core 3.2 Ghz con 2 core con 2 thread in ciascun core (Hyper-Threading). La mia ipotesi come programmatore sarà che i 4 core a 4 thread dovrebbero funzionare più velocemente di 2 core a 4 thread poiché la seconda CPU deve passare da un thread all'altro per emulare 4 core mentre il primo non deve eseguire tale commutazione come ciascuno core può funzionare in modo indipendente e individuale.

Voglio confermare che la mia ipotesi è vera, altrimenti spiega perché uno è migliore dell'altro.


3
Downvote perché una breve ricerca su Google (Wikipedia) avrebbe dato la risposta.
Werner Henze,

4
@WernerHenze mentre quello che dici è vero, vorremmo che le persone vedessero i risultati di SuperUser quando facevano Google cose del genere :)
Shekhar,

Risposte:


10

Credo sia vero - dal momento che l'hyper threading condivide alcuni elementi - in particolare le principali risorse di esecuzione, sarai in grado di eseguire 4 thread completi contemporaneamente, piuttosto che aspettare che queste risorse vengano liberate.

Il punto di HT è quello di ottenere prestazioni migliori con un minore utilizzo dell'area die - il tuo quad core sarebbe generalmente un chip più grande - diciamo quasi due volte più grande di un chip dual core non HT, mentre un chip dual core HT sarebbe circa 5% più grande. Il quad core potrebbe vedere fino a due volte la velocità con il giusto carico di lavoro (anche se, improbabile dal momento che probabilmente non eseguirai 4 thread a piena capacità nella maggior parte dei casi), mentre il processore HT dual core vedrebbe un miglioramento del 15-30% prestazioni ( secondo Wikipedia ) rispetto a un processore non HT dual core.

I core più attuali sono generalmente migliori.


1
Il processore HT vedrebbe il 15-30% ... Si digitano qui. HT non è un sostituto per un vero secondo core (o 2, o 4 ecc.)
Austin T francese

1
Più CPU, con più core, con hyper-threading sarebbe ancora meglio ...: D
Keltari,

È importante notare che il principale motivo del miglioramento delle prestazioni con HT è che la CPU è raramente completamente caricata; cioè che un singolo thread elaborerà raramente i dati con ogni ciclo della CPU. HT consente alla CPU di programmare un secondo thread durante quei cicli altrimenti inutilizzati. Per passare da Facebook a e-mail, questo può essere molto efficace, ma maggiore è il consumo di CPU di ogni thread, minore sarà il miglioramento delle prestazioni.
Thomas,

1

Da Wikipedia :

L'hyper-threading funziona duplicando alcune sezioni del processore - quelle che memorizzano lo stato dell'architettura - ma non duplicando le principali risorse di esecuzione. Ciò consente a un processore hyper-threading di apparire come il normale processore "fisico" e un processore "logico" aggiuntivo nel sistema operativo host (i sistemi operativi HTT-inconsapevoli vedono due processori "fisici"), consentendo al sistema operativo di pianificare due thread o processi contemporaneamente e in modo appropriato. Quando le risorse di esecuzione non vengono utilizzate dall'attività corrente in un processore senza hyper-threading, e specialmente quando il processore è in stallo, un processore dotato di hyper-threading può utilizzare tali risorse di esecuzione per eseguire un'altra attività pianificata. (Il processore potrebbe bloccarsi a causa di un errore nella cache, un errore nella diramazione,

Se si dispone di un sistema quad core, è possibile eseguire 4 thread ciascuno su un core completo. Se si dispone di un sistema hyperthreading dual core, è possibile eseguire 2 thread ciascuno su un core completo, ma con 4 thread i thread 1 e 2 condivideranno un core e i thread 3 e 4 condivideranno l'altro core. L'hyperthreading consente l'esecuzione in parallelo di due thread (solo) se non utilizzano le stesse risorse del processore. Quindi, nel caso ideale, potresti ottenere un elevato grado di parallelizzazione, ma come afferma Wikipedia, il guadagno in termini di prestazioni non è del 100%, ma solo del 15-30%.


1

Nell'hyper-threading, il tempo di inattività del core per taskA (detto core potrebbe aver inviato una richiesta al disco per i dati, attendere che il disco cerchi l'area dei piatti, leggere i dati e rispedirli al core ) viene sfruttato per eseguire un'altra attivitàB. Pertanto, quando taskB viene gestito dal cosiddetto thread 2 e se la richiesta di recupero dati da taskA è completata, taskA deve ancora attendere che il core termini il thread 2. Entrambi i thread non possono essere eseguiti contemporaneamente in un core. Ancora una volta, HT sfrutta la mancata corrispondenza della velocità tra core / processore e i vari sottosistemi del computer. HT utilizza i tuoi core a piena capacità ... è come l'utilizzo della piena capacità. Quindi, se apri quattro schede nel tuo browser, ogni scheda avrà un core in un sistema a 4 core e due schede dovranno condividere un core in un sistema a 2 core.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.