Digamos que tenhamos duas CPUs, uma é Quad Core 3,2 Ghz com 4 núcleos e uma Dual Core 3,2 Ghz com 2 núcleos com 2 threads em cada núcleo (Hyper-Threading). Minha suposição como programador será: os 4 núcleos e os 4 threads devem executar mais rapidamente que os 2 núcleos e os 4 threads, já que a segunda CPU precisa alternar entre os threads para emular 4 núcleos, enquanto o primeiro não precisa executar essa comutação, pois cada núcleo pode executar de forma independente e individual.
Quero confirmar que minha suposição é verdadeira; caso contrário, explique por que uma é melhor que a outra.
Respostas:
Acredito que isso seja verdade - já que o hyper threading compartilha alguns elementos - especificamente os principais recursos de execução, você poderá executar quatro threads completos de uma só vez, em vez de aguardar a liberação desses recursos.
O objetivo do HT é obter melhor desempenho com um uso menor da área da matriz - seu quad core geralmente seria um chip maior - digamos quase o dobro do que um chip dual core não HT, enquanto um chip dual core HT seria sobre 5% maior. O núcleo quádruplo pode ver até o dobro da velocidade sob a carga de trabalho correta (embora seja improvável, pois na maioria dos casos você provavelmente não estará executando 4 threads com capacidade total), enquanto o processador HT de núcleo duplo apresentaria uma melhoria de 15 a 30% desempenho (de acordo com a wikipedia ) do que um processador não HT de núcleo duplo.
Núcleos mais reais geralmente são melhores.
fonte
Da Wikipedia :
Se você possui um sistema com quatro núcleos, quatro threads podem ser executados em um núcleo completo. Se você tiver um sistema de hyperthreading de núcleo duplo, dois threads poderão ser executados em um núcleo completo, mas com 4 threads, os threads 1 e 2 compartilharão um núcleo e os threads 3 e 4 compartilharão o outro núcleo. O Hyperthreading permite que dois threads sejam executados em paralelo (somente) se eles não usarem os mesmos recursos do processador. Portanto, em um caso ideal, você pode obter um alto grau de paralelização, mas, como declara a Wikipedia, o ganho de desempenho não é de 100%, mas de 15 a 30%.
fonte
No hyperthreading, o tempo ocioso do núcleo para a tarefa A (o referido núcleo poderia ter enviado uma solicitação ao disco por dados, aguardar o disco procurar a área dos pratos, ler os dados e enviá-lo de volta ao núcleo ) é explorado para executar outra tarefaB. Portanto, quando taskB está sendo atendida pelo chamado segmento 2 e se a solicitação de busca de dados pela tarefaA for concluída, a tarefaA ainda precisará aguardar o núcleo concluir o segmento 2. Os dois segmentos não podem ser executados simultaneamente em um núcleo. Novamente, o HT explora a incompatibilidade de velocidade entre o núcleo / processador e os vários subsistemas do seu computador. O HT usa seus núcleos na capacidade total ... é como a utilização da capacidade total. Portanto, se você abrir quatro guias no navegador, cada guia terá um núcleo em um sistema de 4 núcleos e duas guias deverão compartilhar um núcleo em um sistema de 2 núcleos.
fonte