Processeurs physiques, logiques et nombre de cœurs


Bonjour,


Historiquement, les ordinateurs étaient équipés d'un seul processeur, puis la notion de processeurs logiques est apparue avec ce qu'on appelait à l'époque l'hyper-threading (ou les processeurs multi-threadés), et nous voyons maintenant des ordinateurs équipés de deux cœurs, quatre cœurs et bien plus. 


Le but de ce rapide post est de vous présenter une méthode simplissime pour déterminer le nombre de processeurs physiques d’une machine, mais aussi le nombre de cœurs et le nombre de processeurs logiques.


Tout cela peut se faire via WMI sur Windows Vista et versions supérieures (mais aussi sur Windows 2003 avec le hotfix suivant installé : http://support.microsoft.com/kb/932370/en-us).


Le code vbscript suivant montre comment faire, notez que pour savoir si un processeur est hyper-threadé, il suffit de comparer le nombre de processeurs logiques et le nombre de cœurs :


strComputer = "."


 


Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")


Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")


 


WScript.Echo "Nombre de processeurs physiques : " & colItems.Count


For Each objItem in colItems


      Wscript.Echo "Processeur : " & objItem.Name


      Wscript.Echo "Nombre de processeurs logiques : " & objItem.NumberOfLogicalProcessors


      Wscript.Echo "Nombre de coeurs : " & objItem.NumberOfCores


 


      if objItem.NumberOfCores < objItem.NumberOfLogicalProcessors then


            WScript.Echo "Ce processeur est hyper-threadé"     


      else


            WScript.Echo "Ce processeur n'est pas hyper-threadé"


      end if


Next


A bientôt
Aurélien

Skip to main content