Dicas O que é 'Hyper Threading' nos processadores da Intel?

As principais linhas de processadores da Intel costumam apresentar uma tecnologia chamada de Hyper Threading. O termo serve para designar uma característica extremamente importante das CPUs da marca e que acaba impactando de forma sensível a performance de cada processador e seu preço, sobretudo quando considerado o uso em aplicações mais pesadas.

A seguir, você vai ficar por dentro de como o Hyper Threading funciona e descobrir o que o faz tão importante nos processadores da Intel.

Threading e threads

Você pode compreender o termo “threads” como tarefas sendo realizadas pelo processador, como manter o anti-vírus rodando em segundo plano enquanto você assiste a um vídeo e ouve seus sons. Threads são realizadas, em geral, de forma paralela nos processadores de mais de um núcleo e dependem diretamente do nível de otimização do software que você está rodando.

Quando se usa “threading” em relação a processadores, a ideia gira em torno do agendamento de tarefas a serem executadas por um processador. Para que tudo funcione corretamente na sua máquina, um regime extremamente preciso, na casa dos nanosegundos, precisa ser seguido na ordem em que cada instrução passada à CPU é processada.

Considere que um processador recebe um conjunto de instruções para serem trabalhadas. Se ele está sozinho, no sentido de que há apenas um núcleo para trabalhar, será preciso esperar que cada uma dessas tarefas seja agendada e encarada pelo núcleo, que irá processá-la e dar saída aos dados. É dessa forma que processadores de um único núcleo funcionam.

Aplicativo do TechTudo: receba as melhores dicas e últimas notícias no seu celular

Mas e como acelerar?

Se você pegar o exemplo do parágrafo anterior e colocar mais núcleos para trabalhar as instruções, haverá um ganho de velocidade no processamento: mais threads poderão ser executadas simultaneamente, já que existirão mais núcleos de processamento em que tarefas serão agendadas de forma independente umas das outras.

Em condições ideais, processadores teriam sempre uma quantidade maior de núcleos porque isso os torna efetivamente mais rápidos, ou pelo menos mais robustos, já que passam a ter capacidade real de trabalho multiplicada. Mas encher uma CPU de alguns milímetros quadrados de núcleos físicos não é viável do ponto de vista do custo e até mesmo dos processos de manufatura usados atualmente. E é aí que entra a ideia do Hyper Threading.

Hyper Threading

Como vimos, de uma forma bem resumida e simples, “threading” é o agendamento de “threads” dentro de um processador (vale lembrar, as definições técnicas, ao pé da letra, desses dois termos são muito mais abrangentes, mas nosso foco não está no estudo delas).

Se você está seguindo os exemplos, deve ter percebido que, mesmo num processador multicore qualquer, núcleos da CPU podem acabar ociosos de tempos em tempos por uma série de circunstâncias: algumas threads podem ser menos complexas que outras, ou um núcleo pode terminar sua carga de trabalho de forma mais rápida que o seu vizinho, ficando um tempo ocioso, sem fazer nada.

Essa ociosidade não é ideal: é desperdício de energia, que continua circulando na CPU, quer ela trabalhe ou não, além de ser um foco de ineficiência, já que os pedaços ociosos do processador poderiam ser melhor aproveitados se postos para trabalhar em mais threads.

O Hyper Threading é uma tecnologia, portanto, que permite que os processadores multicore (dois, quatro, seis, oito e, atualmente, já em 10 e 12 núcleos) tenham acesso a um recurso de agendamento de tarefas muito mais esperto, no sentido de que é capaz de encaminhar as threads aos núcleos da CPU de forma muito mais ágil em busca da diminuição desses períodos de ociosidade.

Processadores com Hyper Threading disponível atingem performance muito melhor em aplicações que dependem de alto grau de paralelismo de processamento de dados (ou, como vimos, que são capazes de passar um

... conjunto de instruções à CPU que podem ser divididas e processadas simultaneamente pelos núcleos). Exemplos de aplicações desse tipo são editores de vídeo, jogos, softwares de modelagem, simuladores e etc.

Hyper Threading dobra o número de núcleos do processador?

Há um mito, em muito fortalecido pelo Windows, de que o Hyper Threading, efetivamente, dobra a quantidade de núcleos do processador: um quad-core, então, passaria a operar como um octa-core. Não é bem assim.

Na verdade, o agendamento muito mais eficiente das tarefas por parte da CPU permite que ela tenha performance de processamento paralelo muito maior, mas isso não significa que um dual-core funcionará como quad-core. O Windows apresenta o dobro dos núcleos de processamento em CPUs com Hyper Threading porque é dessa forma que o sistema operacional enxerga o processador com essa alta capacidade de trabalho e agendamento eficiente.

Recuperando a analogia do tráfego em rodovia, feita pela Intel: sem Hyper Threading, um processador dual-core teria duas vias de acesso pelas quais as informações a serem processadas chegariam aos núcleos. Com Hyper Threading, esse mesmo processador exibiria essas duas vias, mas mais duas, totalizando quatro vias de acesso. É por isso, por exemplo, que é comum ver especificações de processadores nesse modelo "quatro núcleos e oito threads", ou no caso dos Xeon mais poderosos da atualidade "12 núcleos e 24 threads".

Como escolher um bom processador com Hyper Threading?

Até alguns anos atrás, não era essencial procurar uma CPU com Hyper Threading simplesmente porque não era grande a quantidade de aplicações que funcionavam tirando proveito desse recursos: aplicativos ainda eram desenvolvidos para enviar threads à CPU de forma seriada: uma de cada vez, independente da quantidade de núcleos.

Com o tempo, e a persistência dessa tecnologia em processadores, o software começou a ser desenvolvido de olho na capacidade de múltiplas threads sendo executadas ao mesmo tempo.

Hoje, quem está no mercado em busca de uma nova CPU deve considerar essa tecnologia, sobretudo se o computador terá de encarar o processamento de dados em aplicações mais exigentes, como jogos e editores de vídeo e imagem em altas resoluções. No caso da Intel, a grande maioria dos processadores i3, i5 e i7 oferecem Hyper Threading. A coisa muda entre os Celeron e Pentium: apenas o Pentium G4560 dispõe de Hyper Threading.



>>> Veja o artigo completo no TechTudo