O que significam irmãos em / proc / cpuinfo?

11

Isso significa o número de processadores virtuais em um processador físico?

LED Zeppelin
fonte

Respostas:

9

Se o número de irmãos for igual ao número de núcleos, você terá CPUs que não são hyperthreading ou hyperthreading desativadas. Se o número de irmãos for 2x o número de núcleos, você terá uma CPU hyperthreading com o hyperthreading ativado. Há um bom artigo aqui .

user9517
fonte
7

O número de irmãos em um processador é o número total de unidades de execução dentro desse processador. Isso incluirá núcleos adicionais e hyperthreading.

Por exemplo,

  1. Um Core 2 Duo será listado siblings : 2. Núcleo duplo, sem hyperthreading.
  2. Um Xeon E5420 será listado siblings : 4. Núcleo duplo, com hyperthreading.
  3. Um Pentium 4 com hyperthreading será listado siblings : 2. Núcleo único, com hyperthreading.
Scott Pack
fonte
1

Antes de tudo, entenda os termos abaixo e seu contexto de uso.

  • CPU
    • Uma CPU é uma unidade de processamento.
    • Ele terá vários componentes para processar instruções.
    • Cada componente é responsável por operações diferentes, como busca de instruções, decodificação, processo, atualização etc.
  • Testemunho
    • Uma CPU pode ter vários conjuntos / unidades dos componentes mencionados acima.
    • Se houver dois conjuntos dessas unidades, o processador poderá executar duas instruções em paralelo.
    • Uma unidade é chamada como Core.
    • Uma CPU Duel-Core terá dois conjuntos idênticos de componentes. Uma CPU quad-core terá quatro conjuntos idênticos desses componentes / unidades
  • Multi-CPU / hyperthreading
    • Isso é um pouco complicado. É válido apenas no contexto do software.
    • Sempre que uma instrução estiver aguardando a conclusão de um evento externo, a CPU ficará inativa. Para utilizar melhor a CPU, alguns fornecedores mantêm dois threads de hardware e sempre que um deles é bloqueado, o hardware muda para outro. Esse tipo de processador terá a capacidade de armazenar e restaurar estados da CPU
    • Para o software, parecerá que dois threads estão sendo executados em paralelo.
    • O Linux considera esses núcleos de hyperthreading como múltiplos cpus. Porque ele pode executar dois threads em paralelo. Então ele verá duas unidades de execução (pseudo CPUs).
    • Por exemplo, as CPUs Intel recentes são hyperthread, capazes de executar dois threads simultâneos.
  • Multi-core
    • CPUs modernas estão tendo vários conjuntos de unidades / núcleos de hardware mencionados acima
    • Ao contrário do hyperthreading, eles podem realmente executar duas instruções em paralelo
    • Cada núcleo também pode ter hyperthread
  • Multiprocessador
    • Sistemas de alto desempenho, como servidores, super computadores terão várias CPUs físicas.
    • Você pode ver vários soquetes de CPU em suas placas-mãe
    • Cada um pode ter vários núcleos. Novamente, cada núcleo pode ser hyperthread

PCs modernos geralmente vêm com processadores hyperthread Multi-Core. Por exemplo, o Linux rodando em um PC que vem com CPU intel hyperthread quad-core, verá 8 CPUs (4 núcleos x 2 hyperthreads).

Servidores modernos são geralmente sistemas com vários núcleos e processadores múltiplos. Um servidor típico terá dois soquetes, cada um com 24 núcleos com hyperthread. Portanto, o Linux em execução neste sistema verá 96 CPUs (2 soquetes x 24 núcleos x 2 hyperthreads)

Irmãos

Voltando à questão real, os processadores que compartilham o cache serão chamados de irmãos. A organização do cache será como (embora varie com base na arquitetura),

  • Cada núcleo terá um cache de instruções L1 e um cache de dados L1
  • Cada núcleo terá um cache L2 unificado
  • Todos os núcleos em um soquete terão um cache L3 unificado
  • Normalmente, não há dois soquetes que compartilhem qualquer cache

Considere um sistema Multi-Core-Multi-Processor com 2 soquetes. Cada soquete possui 24 núcleos com hyperthreading. Nesse caso, o Linux verá o total de 96 CPUs numeradas de 0 a 95. O soquete 1 terá CPUs de 0 a 47 e o soquete 2 terá de 48 a 95 (ao contrário disso, normalmente os números serão intercalados). Para este sistema com a organização de cache acima mencionada,

  • Os processadores de 0 a 47 são irmãos
  • Os processadores 48-95 são irmãos
theB
fonte
0

O kernel usa o número de irmãos para balancear a carga, por exemplo;

Quatro tarefas estão em execução em um sistema com dois pacotes físicos, cada um com dois núcleos (compartilhando o cache de último nível) e cada núcleo com dois encadeamentos lógicos. O equilíbrio de carga entra em ação no domínio multicore para o primeiro pacote, resultando em distribuição de carga igual entre todos os núcleos.

Bart
fonte
pacote é a terminologia errada aqui.
Wm Kerkhoff