Yo no tengo datos exactos pero he estado trabajando con unos Xeon que incorporaban Hiperthreading y en realidad no obtienes dos CPUs realmente diferentes. La segunda CPU virtual es aprox el 30% de la de verdad.
La gracia esta en que niguna de las cpu's esta privilegiada
Con lo que realmente no importa en que CPU se ejecute la hebra
se repartira el uso de la CPU entre las dos segun lo necesiten.
Lo que hace que el equilibrado de carga sea más equitativo
EJ: (aunque no sea muy real)
Comparando un 3GHz HT
(más ese 20/30 %)
seria
como 3.3 GHz entre 2
comparado con dos CPU's de 1.65
ocurren 3 cosas:
1º si una hebra necesita menos CPU
una de las CPU's esta desocupada por que
tiene que esperar a la que tiene su CPU al 100 %
con el HT esto no ocurre por que la que necesita más CPU
simplemente coge más CPU.
2º
Los cambios de contexto penalizan menos
en el caso anteriror para equlibarar la Hebra que
necesita más CPU para coger la 2º CPU requiera
un cambio de contexto entre las 2 CPU
(descargando la menos prioritaria)
Con el HT para balancear el uso entre las
2 cpus logicas no hay ninguna penalización
3º
La comunicación y sincronización entre hebras es más rapida
por que se pueden comunicar sin salir de la cache L1
Puede que el HT sea solo un truco de Intel
para aprovechar el % de CPU que no podia aprovechar
con una sola hebra/proceso pero el caso
es que es una tecnologia muy interesante y
que funciona bastante bien
Com ejemplo. Yo estaba comprimiendo una peli a 65 fps
con el mencoder.
Puse otra a lavez e iban las dos a 40/45 fps