Eu queria saber o que significa 2 núcleos e 4 threads sobre uma CPU? Eu estou falando sobre esta CPU que eu tenho
http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz
Inicialmente, pensei que o i5 tinha 4 núcleos, mas acho que estou errado. Meu entendimento de um thread é que é um pedaço de código que pode ser executado simultaneamente (simultaneamente) com outros threads. Então, o que 4 threads significam nessa folha de especificações? É diferente dos threads programáticos. O número de threads lá é diferente do thread do programa que criamos. Se tiver apenas 2 núcleos, é correto que você possa executar apenas 2 programas paralelos, mesmo que possua 4 threads?
Respostas:
Seu i5 possui dois núcleos, cada núcleo pode executar dois threads por causa do hyperthreading da intel , criando 4 threads, além do que ele alterna em alta velocidade entre processos. Aqui está uma boa explicação do multithreading, se você quiser saber mais, mas em essência sua CPU pode executar 4 processos simultaneamente e alternar em alta velocidade entre processos.
fonte
Não tenho certeza do seu nível de conhecimento em arquitetura de computadores, no entanto, o Core i5 que você mencionou aqui implementa uma forma de multiencadeamento conhecida como multithreading simultâneo (SMT). A marca registrada da Intel para a implementação do SMT é hyperthreading.
Além do SMT, existem outras formas de multiencadeamento, sendo o multiencadeamento temporal. Por exemplo, multithreading temporal de baixa granularidade, onde o processador pode alternar entre threads diferentes a cada ciclo e, assim, permitir a execução pseudo-paralela de vários programas. Da mesma forma, pode haver multithreading temporal de granulação grossa, em que um processador pode alternar entre threads quando atinge uma operação de alta latência, como um acesso à memória principal no thread atual. Os pontos de comutação exatos podem variar com base na implementação e nos requisitos, como imparcialidade ou prazos em tempo real.
O SMT se desvia da filosofia de comutação de contexto para multiencadeamento, na medida em que na verdade possui dois ou mais encadeamentos sendo executados em um processador ao mesmo tempo. Embora a implementação possa variar, o objetivo principal é explorar as unidades funcionais do processador que estão ociosas se apenas um encadeamento estiver em execução e também explorar a natureza superescalar do amplo problema. Você pode imaginar a multithread temporal como o tempo que divide os recursos do processador, enquanto o SMT como o corte espacial dos recursos.
Uma análise detalhada pode ser encontrada no artigo de Tullsen, de 1995:
http://dl.acm.org/citation.cfm?id=224449
fonte
"Se ele possui apenas 2 núcleos, é correto que você possa executar apenas 2 programas paralelos, mesmo que possua 4 threads?" Se ele possui 2 núcleos, o cálculo é dividido por 2 = paralelismo. No entanto, se o sistema possui um hyperthreading, ele pode fazer o cálculo 2 no mesmo núcleo, por que o mesmo núcleo é exibido no sistema operacional como 2 núcleos ... núcleos lógicos.
fonte
Pegue o número de threads e divida-o pelo número de núcleos, o que fornecerá o número de threads que podem ser executados simultaneamente por núcleo do processador.
Em épocas anteriores [nos modelos anteriores da Intel], o hyperthreading era limitado a 1 núcleo executando 2 threads simultaneamente OU múltiplos núcleos executando 1 conjunto de instruções (também conhecido como thread) por núcleo (bastante ineficiente, se você me perguntar). Mas com melhor poder computacional e desenvolvimentos posteriores, como o processador i5, você tem o que eu gosto de chamar, um processador hyperthread de vários núcleos, com vários núcleos executando vários conjuntos de instruções (também conhecidos como threads) por núcleo.
No seu caso, 1 núcleo recebe 2 threads, portanto, quando você faz as contas, possui um total de = 4 conjuntos de instruções (threads).
Outro exemplo: Nº de núcleos = 4, Nº de threads = 8 | 8/4 = 2, então cada núcleo processa 2 threads simultaneamente (não tenho certeza de qual modelo de processador faz isso, mas tenho quase certeza de que existe).
Espero que isso ajude meu amigo! Computação feliz!
Fonte: Certificação PEARSON IT CompTIA A + Examp Cram Cert. Manual
fonte