Question

Je suis en train de savoir comment un système d'exploitation (Windows, Linux) attribue des numéros à CPUs logiques dans un environnement Hyperthreading activé. ?

Est-ce que les deux systèmes d'exploitation de la première série numéroter les CPU physiques et commence la numérotation logique des CPUs ou est-il une autre règle suivie ..? par exemple. dans deux systèmes de processeurs physiques avec un filetage hyper, un système d'exploitation ne classer nombre de 0,2 à la première unité centrale de traitement physique et 1,3 à la seconde unité centrale de traitement physique ..?

Les références serait vraiment apprécié.

Merci d'avance.

Cordialement, -Jay.

Edit: En réponse à la question d'Alan: Je dois savoir cela parce que, dans mon travail, je dois lier plusieurs threads processeurs spécifiques pour éviter les changements de contexte et je veux vous assurer que certaines tâches (Threads) sont liés à séparée CPUs physique. Merci

Était-ce utile?

La solution

D'après ce que je sais, cela dépend de la façon dont la CPU expose ses cœurs. Lorsque HT est activé, il n'y a pas de processeurs physiques exposés, mais plutôt deux processeurs logiques par processeur physique, donc il n'y a pas de différence si vous exécutez un fil de chaque CPU logique. La seule chose qui importe est ce que des paires de processeurs logiques appartiennent à chaque processeur physique.

Avec les processeurs simple core (comme le Pentium 4 avec HT), il est assez simple, puisque vous avez une seule paire - il est donc (0, 1). Avec les processeurs quad core (comme Nehalem), les paires de noyaux logiques sont (0,4), (1,5), (2,6) et (3,7). Le motif d'avoir toutes les premières moitiés de chaque paire ayant alors toutes les secondes moitiés shuold échelle avec CPU future qui ont même plusieurs noyaux.

La vraie question est de savoir pourquoi vous avez besoin de savoir l'arrangement de paire? Laissez le planificateur de l'OS choisir les noyaux de droite pour les fils de droite -. Il fait un travail assez décent

Autres conseils

Vous pouvez regarder dans /sys/devices/system/cpu/ pour trouver les informations sur les unités centrales. La mise en page des noyaux et leurs paires hyperthreaded se trouve dans /sys/devices/system/cpu/cpuN/topology/thread_siblings_list.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top