Che cosa significano i fratelli in / proc / cpuinfo?


11

Significa il numero di processori virtuali in un processore fisico?

Risposte:


9

Se il numero di fratelli è uguale al numero di core, allora hai CPU che non sono hyperthreading o hyperthreading è spento, Se il numero di fratelli è il doppio del numero di core, allora hai una CPU hyperthreading con hyperthreading attivato. C'è un buon articolo qui .


7

Il numero di fratelli su un processore è il numero totale di unità di esecuzione all'interno di quel processore. Ciò includerà sia core aggiuntivi che hyperthreading.

Per esempio,

  1. Verrà elencato un Core 2 Duo siblings : 2. Dual core, nessun hyperthreading.
  2. Verrà elencato un Xeon E5420 siblings : 4. Dual core, con hyperthreading.
  3. Verrà elencato un Pentium 4 con hyperthreading siblings : 2. Single core, con hyperthreading.

1

Prima di tutto capire i termini seguenti e il loro contesto di utilizzo.

  • processore
    • Una CPU è un'unità di elaborazione.
    • Avrà più componenti per elaborare le istruzioni.
    • Ogni componente è responsabile di diverse operazioni come recupero, decodifica, elaborazione, aggiornamento delle istruzioni, ecc.
  • Nucleo
    • Una CPU può avere più set / unità dei componenti sopra menzionati.
    • Se sono presenti due set di queste unità, il processore può eseguire due istruzioni in parallelo.
    • Un'unità è chiamata Core.
    • Una CPU Duel-Core avrà due set identici di componenti. Una CPU Quad-core avrà quattro set identici di questi componenti / unità
  • Multi-CPU / hyperthreading
    • Questo è un po 'complicato. È valido solo il contesto software.
    • Ogni volta che un'istruzione è in attesa del completamento di un evento esterno, la CPU sarà inattiva. Per utilizzare meglio la CPU, alcuni fornitori mantengono due thread hardware e ogni volta che un thread viene bloccato, l'hardware passa a un altro thread. Questo tipo di processori sarà in grado di memorizzare e ripristinare gli stati della CPU
    • Per il software, sembrerà che due thread stiano funzionando in parallelo.
    • Linux considera questo core hyperthreading come multiplo cpus. Perché può eseguire due thread in parallelo. Quindi vedrà due unità di esecuzione (pseudo-CPU).
    • Ad esempio, le recenti CPU Intel sono hyperthread, in grado di eseguire due thread simultanei.
  • Multi-core
    • Le moderne CPU hanno più set di unità hardware / core sopra menzionati
    • A differenza dell'hyperthreading, possono effettivamente eseguire due istruzioni in parallelo
    • Ogni core può essere anche hyperthreaded
  • Multi-processore
    • Sistemi ad alte prestazioni come server, i super computer avranno più CPU fisiche.
    • Puoi vedere più socket CPU nelle loro schede madri
    • Ognuno può avere più core. Ancora una volta ogni core può essere hyperthreaded

I PC moderni di solito arrivano con processori hyperthreaded Multi-Core. Ad esempio Linux in esecuzione su un PC dotato di CPU Intel hyperthreaded quad-core, vedrà 8 CPU (4 core x 2 hyperthread).

I server moderni sono in genere sistemi multi-core e multi-processore. Un server tipico avrà due socket, ciascuno con 24 core hyperthreaded. Quindi Linux in esecuzione su questo sistema vedrà 96 CPU (2 socket x 24 core x 2 hyperthread)

fratelli

Tornando alla domanda reale, i processori che condividono la cache verranno chiamati fratelli. L'organizzazione della cache sarà simile (anche se varierà in base all'architettura),

  • Ciascun Core avrà una cache di istruzioni L1 e una cache di dati L1
  • Ogni core avrà una cache L2 unificata
  • Tutti i core in un socket avranno una cache L3 unificata
  • Di solito non ci sono due socket che condivideranno cache

Prendi in considerazione un sistema multi-core-multiprocessore con 2 socket. Ogni socket ha 24 core con hyperthreading. In questo caso Linux vedrà un totale di 96 CPU numerate da 0 a 95. Il socket 1 avrà CPU 0-47 e il socket 2 avrà 48-95 (diversamente da questo, i numeri saranno interlacciati). Per questo sistema con la suddetta organizzazione cache,

  • I processori 0-47 sono fratelli
  • I processori 48-95 sono fratelli

0

Il kernel usa ad esempio il numero di fratelli per bilanciare il carico;

Quattro attività sono in esecuzione su un sistema con due pacchetti fisici, ciascuno con due core (condivisione della cache dell'ultimo livello) e ogni core con due thread logici. Il bilanciamento del carico entra nel dominio multicore per il primo pacchetto, determinando un'equa distribuzione del carico tra tutti i core.


pacchetto è la terminologia sbagliata qui.
Wim Kerkhoff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.