Devo desabilitar o hyperthreading quando estiver preocupado com o desempenho de aplicativos single-threaded?

4

Eu uso um processador i5-2410M, que é configurado para fazer hyperthreading por padrão no meu laptop. Considerando que este é um processador de 2 núcleos, isso significa que ele pode fazer 4 threads por vez. Isso também significa que os aplicativos single-threaded usam apenas um máximo de 25% de poder de processamento, e prefiro tê-los no máximo em 50%. A desativação do hyperthreading terá efeitos adversos (essa é uma máquina de desenvolvimento e executa uma área de trabalho)? Eu estou lendo mesmo top corretamente?

    
por Tshepang 12.08.2011 / 15:30

1 resposta

3

Com o hyper-threading com aplicativos de thread único, se você tiver dois deles executando, você verá um aumento na velocidade. Hyperthreading significa que a CPU começa a processar um segundo thread (seja dois threads de um aplicativo multiencadeado ou dois aplicativos single threaded) antes do primeiro thread terminar o que estava fazendo. Desativar isso efetivamente significa que você reduziu sua capacidade de CPU pela metade (mas não realmente, o HT aumentará em cerca de 30%, mas eu estou falando sobre o que o top te diz), e é por isso que um thread agora é 50% em top em vez de 25%.

Mais algumas explicações :

This doesn't mean, however, that the vast majority of today's applications won't see gains from Hyper-Threading. Even single-threaded apps can reap performance benefits from Hyper-Threading, as long as more than one app is running at the same time (in other words, multitasking). While one application is sending its streams (threads) to one logical processor, a second application is simultaneously sending its streams to the second logical processor. However, if you run only one single-threaded application, you won't see performance gains with Hyper-Threading. In fact, because of the overhead associated with managing the two logical processors of Hyper-Threading, it's even possible to see some performance degradation when running only a single-threaded app.

Com um sistema UNIX inicializado, você está executando pelo menos o kernel, o init e um shell. Você é sempre multitarefa. De todas as formas práticas, o HT sempre irá beneficiá-lo.

    
por 12.08.2011 / 18:37