Que signifie la fratrie dans / proc / cpuinfo?

11

Cela signifie-t-il le nombre de processeurs virtuels dans un processeur physique?

LedZeppelin
la source

Réponses:

9

Si le nombre de frères et sœurs est égal au nombre de cœurs, vous avez des processeurs qui ne sont pas hyperthreading ou hyperthreading est désactivé, si le nombre de frères et sœurs est 2x le nombre de cœurs, alors vous avez un processeur hyperthreading avec hyperthreading activé. Il y a un bon article ici .

user9517
la source
7

Le nombre de frères et sœurs sur un processeur est le nombre total d'unités d'exécution au sein de ce processeur. Cela comprendra à la fois des cœurs supplémentaires et l'hyperthreading.

Par exemple,

  1. Un Core 2 Duo apparaîtra siblings : 2. Dual core, pas d'hyperthreading.
  2. Un Xeon E5420 apparaîtra siblings : 4. Dual core, avec hyperthreading.
  3. Un Pentium 4 avec hyperthreading listera siblings : 2. Monocœur, avec hyperthreading.
Scott Pack
la source
1

Tout d'abord, comprenez les termes ci-dessous et leur contexte d'utilisation.

  • CPU
    • Un CPU est une unité de traitement.
    • Il aura plusieurs composants pour traiter les instructions.
    • Chaque composant est responsable de différentes opérations comme la récupération des instructions, le décodage, le traitement, la mise à jour, etc.
  • Coeur
    • Un processeur peut avoir plusieurs ensembles / unités de composants mentionnés ci-dessus.
    • S'il existe deux ensembles de ces unités, le processeur peut exécuter deux instructions en parallèle.
    • Une unité est appelée Core.
    • Un processeur Duel-Core aura deux ensembles de composants identiques. Un processeur quadricœur aura quatre ensembles identiques de ces composants / unités
  • Multi-processeurs / hyperthreading
    • C'est peu délicat. Il n'est valable que dans le contexte logiciel.
    • Chaque fois qu'une instruction attend la fin d'un événement externe, la CPU sera inactive. Pour mieux utiliser le CPU, certains fournisseurs maintiennent deux threads matériels et chaque fois qu'un thread est bloqué, le matériel passe à un autre thread. Ce type de processeur aura la capacité de stocker et de restaurer les états CPU
    • Pour les logiciels, il semblera que deux threads s'exécutent en parallèle.
    • Linux considère ces cœurs hyperthreading comme des processeurs multiples. Parce qu'il peut exécuter deux threads en parallèle. Il verra donc deux unités d'exécution (pseudo-CPU).
    • Par exemple, les processeurs Intel récents sont hyperthreadés, capables d'exécuter deux threads simultanés.
  • Multi-core
    • Les processeurs modernes ont plusieurs ensembles d'unités matérielles / cœurs mentionnés ci-dessus
    • Contrairement à l'hyperthreading, ils peuvent en fait exécuter deux instructions en parallèle
    • Chaque noyau peut également être hyperthreadé
  • Multi-processeur
    • Les systèmes hautes performances tels que les serveurs, les super ordinateurs auront plusieurs processeurs physiques.
    • Vous pouvez voir plusieurs sockets CPU dans leurs cartes mères
    • Chacun peut avoir plusieurs cœurs. De nouveau, chaque noyau peut être hyperthreadé

Les PC modernes sont généralement livrés avec des processeurs hyperthreadés multicœurs. Par exemple, Linux s'exécutant sur un PC équipé d'un processeur Intel hyperthread à quatre cœurs, verra 8 CPU (4 cœurs x 2 hyperthreads).

Les serveurs modernes sont généralement des systèmes multicœurs et multiprocesseurs. Un serveur typique aura deux sockets, chacun ayant 24 cœurs hyperthreadés. Donc, Linux fonctionnant sur ce système verra 96 ​​CPU (2 sockets x 24 cœurs x 2 hyperthreads)

Fratrie

Pour en revenir à la question réelle, les processeurs partageant le cache seront appelés frères et sœurs. L'organisation du cache sera similaire (bien qu'elle varie en fonction de l'architecture),

  • Chaque noyau aura un cache d'instructions L1 et un cache de données L1
  • Chaque Core aura un cache Unified L2
  • Tous les cœurs d'un socket auront un cache Unified L3
  • Deux sockets ne partagent généralement pas de cache

Considérez un système multicœur-multi-processeur avec 2 sockets. Chaque sockets ayant 24 cœurs avec hyperthreading. Dans ce cas, Linux verra un total de 96 processeurs numérotés de 0 à 95. Le socket 1 aura des processeurs 0-47 et le socket 2 en aura 48-95 (contrairement à cela, généralement les nombres seront entrelacés). Pour ce système avec l'organisation de cache mentionnée ci-dessus,

  • Les processeurs 0-47 sont frères et sœurs
  • Les processeurs 48-95 sont frères et sœurs
theB
la source
0

Le noyau utilise le nombre de frères et sœurs pour équilibrer la charge par exemple;

Quatre tâches s'exécutent sur un système ayant deux packages physiques, chacun ayant deux cœurs (partageant le cache de dernier niveau) et chaque cœur ayant deux threads logiques. L'équilibrage de charge entre en jeu dans le domaine multicœur pour le premier package, ce qui entraîne une répartition de charge égale entre tous les cœurs.

Bart
la source
package est la mauvaise terminologie ici.
Wim Kerkhoff