Um processador HyperThreaded Quad Core na verdade tem 8 “cores” [duplicado]

2

Tenho um Mac do Quad Core i7 no início de 2011 Devido ao hyperthreading, muitos programas reportam 8 núcleos. Se eu fosse escrever um programa que fosse executado em paralelo, eu poderia iniciar 8 instâncias desse programa ou apenas 4?

Eu sei que posso iniciar quantos threads eu quiser, mas eu estaria vendo 4 ou 8 instâncias do programa sendo executadas em paralelo?

    
por Tyler DeWitt 04.12.2013 / 20:13

1 resposta

4

O processador Intel Core i7 tem 4 núcleos físicos, mas cada núcleo tem a capacidade de inserir até 2 Threads por vez, mostrando 8 threads totais para o sistema operacional na forma de "CPUs lógicas disponíveis".

Na realidade, um único núcleo só pode manipular um thread de cada vez, mas possui mecanismos especiais de enfileiramento / temporização / agendamento para permitir que dois encadeamentos estejam em estágios diferentes do "pipeline" ao mesmo tempo. Isso permite que a CPU conclua 2 threads mais cedo do que se fosse manipular apenas uma por vez. Como os dois segmentos estão compartilhando o mesmo pipeline, o benefício de desempenho obviamente não será 2x. A maioria dos testes coloca o benefício em qualquer lugar entre 10% e 50%, dependendo do tipo de instruções que estão sendo executadas.

Em resposta à sua pergunta, se você iniciar 4, 8 ou 16 instâncias do seu programa, todas elas estarão "em execução", mas as instruções de cada uma serão enfileiradas, dependendo de quantas LINHAS disponíveis estão disponíveis. Uma vez que você vá além do número de NÚMEROS FÍSICOS disponíveis (por exemplo, 5 ou mais), o desempenho será reduzido porque qualquer segmento além da base 4 estará compartilhando um núcleo físico da CPU.

Finalmente, quando você atingir o limite do recurso de encadeamento da CPU disponível (exceder 8 encadeamentos), o sistema operacional iniciará as instruções de planejamento / enfileiramento para aguardar até que as tarefas no encadeamento sejam concluídas. O ideal é evitar passar por cima dos encadeamentos disponíveis, pois isso pode ter impactos negativos no desempenho e afunilar o sistema.

    
por 04.12.2013 / 20:37