Linux trouver sur l'Hyper-thread noyau id
J'ai passé la matinée à essayer de trouver comment déterminer quel processeur id est l'hyper-thread noyau, mais sans succès.
Je souhaite trouver cette information et l'utiliser set_affinity()
la lier à un processus d'hyper-thread thread ou non-hyper-thread thread pour le profil de ses performances.
Habituellement, tous les cœurs sont hyperthread ou pas de noyau. Ou suis-je trompé sur cette hypothèse?
Oui, si HT est activé, chaque noyau physique aura un 2 fils (1 physique + 1 HT). Dans le logiciel, les deux fils sont traités de la même façon, mais ils seront différents de processeur id (Linux). J'aimerais en savoir dont le numéro appartiennent à la physique du fil, et qui appartiennent à HT fil.
Qu'est-ce que votre CPU? P4 ou Core2 ou Corei7 ou Atom?
C'est un core i7 Sur Sandy Bridge
Oui, si HT est activé, chaque noyau physique aura un 2 fils (1 physique + 1 HT). Dans le logiciel, les deux fils sont traités de la même façon, mais ils seront différents de processeur id (Linux). J'aimerais en savoir dont le numéro appartiennent à la physique du fil, et qui appartiennent à HT fil.
Qu'est-ce que votre CPU? P4 ou Core2 ou Corei7 ou Atom?
C'est un core i7 Sur Sandy Bridge
OriginalL'auteur Patrick | 2011-09-01
Vous devez vous connecter pour publier un commentaire.
J'ai découvert le truc pour faire ce dont j'ai besoin.
Si le premier nombre est égal au numéro de l'UC (0 dans cet exemple), alors c'est un vrai noyau, sinon c'est un hyperthreading de base.
Réel de base exemple:
L'Hyperthreading de base exemple
La sortie du deuxième exemple est exactement la même que la première. Cependant, nous vérifions les
cpu13
, et le premier numéro est1
, donc CPU 13 c'est un hyperthreading de base.Combien de cœurs avez-vous de donner à l'invité?
Il est possible d'obtenir quelque chose de possible sur windows?
cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | sort | uniq
OriginalL'auteur Patrick
HT est symétrique (en termes de ressources de base, le système de la mode peut être asymétrique).
Donc, si l'HT est activée, les grandes ressources de la Physique de base seront partagés entre les deux threads. Certains matériel supplémentaire est activé pour enregistrer l'état de deux threads. Les deux fils ont accès symétrique à la physique de base.
Il y a une différence entre le HT-désactivé de base et de l'HT activé de base; mais pas de différence entre le 1er semestre de l'HT activé de base et le 2ème semestre de l'HT activé de base.
Au seul moment du temps, un HT-thread peut utiliser plus de ressources que d'autres, mais cette ressource équilibrage dynamique. Le CPU de la balance des threads comme il peut et comme il veut, si les deux fils souhaitez utiliser la même ressource. Vous ne pouvez faire un
rep nop
oupause
dans un thread de laisser CPU donner plus de ressources à d'autres thread.D'accord, vous pouvez réellement mesurer la performance sans le savoir un fait. Viens de faire un profil lorsque le seul fil dans le système est relié à CPU0; et de le répéter quand il est lié à CPU1. Je pense que les résultats sont presque les mêmes (OS peut générer du bruit si elle lie certaines interruptions de CPU0; essayez donc de diminution du nombre d'interruptions lors de faire des tests et essayez d'utiliser CPU2 et CPU3 si vous avez par exemple).
PS
Agner (il est le Gourou en x86) recommande d'utiliser des paires de cœurs de dans le cas où vous souhaitez ne pas utiliser de HT, mais il est activé dans le BIOS:
PPS Sur New-réincarnation HT (pas un P4, mais Nehalem et de Sable) - basé sur Agner de la recherche sur la microarchitecture
...
...
PPP: Intel Optimisation des listes de livres de partage de ressources dans la deuxième génération de HT: (page 93, cette liste est pour nehalem, mais il n'y a pas de modifications de cette liste de Sable de la section)
tampon, une grande page ITLB //commentaire par moi: il y a 2 jeux de cette HW
les tampons, les petits-page ITLB sont alloués statiquement entre deux logiques
les processeurs. //commentaire par moi: il est seul ensemble de ce MATÉRIEL; il est statiquement répartis entre deux HT-cœurs virtuels en deux moitiés
cache de la hiérarchie, de remplir les tampons, les deux DTLB0 et STLB. //commentaire: Seule, mais pas divisé en deux. Le CPU de manière dynamique redivisons ressources.
entre deux processeurs logiques pour assurer l'équité. //commentaire: il existe une seule Interface (décodeur d'instruction), de sorte que les threads seront décodés dans l'ordre: 1, 2, 1, 2.
Il y a aussi des photos à la page 112 (Figure 2-13), qui montre que les deux logiques sont des noyaux symétriques.
les threads d'exécuter simultanément sur les processeurs logiques dans chaque physiques
processeur
seul thread est de consommer de l'exécution des ressources, d'augmenter le niveau de ressources
l'utilisation peut entraîner une augmentation du débit du système
Je upvoted la bonne réponse.
Il est marqué comme étant la bonne réponse, faites défiler vers le haut et de regarder pour la grosse coche verte.
C'est un ensemble très complet de réponse. Merci
OriginalL'auteur osgx
Je suis surpris que personne n'a mentionné
lscpu
encore. Voici un exemple sur une seule prise à quatre cœurs physiques et de la technologie hyper-threading:La sortie explique comment interpréter le tableau des Id; PROCESSEUR logique Id avec la même identité de Base sont frères et sœurs.
Ils sont pairs, il n'y a pas un noyau principal et une 2e classe "hyperthread" de base.
OriginalL'auteur Connor Doyle
Il est universel (Linux/Windows) et portable HW topologie détecteur (carottes, HT, cacahes, au sud des ponts et disque/connexion net localité) -
hwloc
par OpenMPI projet. Vous pouvez l'utiliser, parce que linux peut utiliser différents HT de base de la numérotation des règles, et on ne peut pas savoir qu'il sera pair/impair ou y et y+8 nubering règle.Page d'accueil de hwloc:
http://www.open-mpi.org/projects/hwloc/
Page de téléchargement:
http://www.open-mpi.org/software/hwloc/v1.10/
Description:
Il a
lstopo
commande pour obtenir le matériel de la topologie sous forme graphique commeou sous forme de texte:
Nous pouvons voir cœurs physiques comme
Core L#x
ayant chacun deux noyaux logiquesPU L#y
etPU L#y+8
.OriginalL'auteur osgx
J'ai essayé de vérifier l'information par la comparaison de la température du noyau et de la charge sur le HT de base.
pas une bonne réponse, mais j'aime l'idée
OriginalL'auteur Tomas Kubes