Ho un quadcore Intel i7-2600K, con hyperthreading abilitato su Ubuntu 12.04. So che posso scoprire quanti core ho in Python con import multiprocessing; multiprocessing.cpu_count()
, ma questo mi dà 8 perché ho l'hyperthreading abilitato su 4 core fisici. Sono piuttosto interessato a scoprire quanti core fisici ho. C'è un modo per farlo in Python? In alternativa, c'è un modo per scoprire in Python se l'hyperthreading è abilitato? Grazie in anticipo per il vostro aiuto!python come scoprire se l'hyperthreading è abilitato
risposta
Secondo http://archive.richweb.com/cpu_info, determinare un hyperthreading della CPU un po 'complicato, ma comunque utile.
Nota che il metodo è specifico per Linux.
OK, è utile. Grazie! Il collegamento – Ray
è rotto. – user1938107
per ottenere informazioni hyperthreading su Mac, è possibile utilizzare:
os.popen('sysctl hw').readlines()[1:20]
e confrontare il valore 'hw.activecpu'
al valore 'hw.physicalcpu'
, il primo è il numero di CPU compreso hyperthreading. O potresti semplicemente confrontare 'hw.physicalcpu'
con il valore restituito da multiprocessing.cpu_count()
.
su Linux si poteva fare qualcosa di simile utilizzando:
os.popen('lscpu').readlines()
e moltiplicare il valore 'Socket(s)'
e il valore 'Core(s) per socket'
per ottenere il numero di CPU fisiche. Ancora una volta, è possibile controllare questo numero con multiprocessing.cpu_count()
.
Non uso di Windows, quindi non posso fare lì, ma sembra che altri hanno alcune idee in questa direzione
Un esempio relativo a questo può essere trovato qui hardware_info().
lscpu -p fornisce l'output separato da virgole – edW
su Windows, per vedere se l'hyperthreading è enbabled si può fare un po 'di magia WMI con pywin32:
from __future__ import print_function
from win32com.client import GetObject
winmgmts_root = GetObject("winmgmts:root\cimv2")
cpus = winmgmts_root.ExecQuery("Select * from Win32_Processor")
for cpu in cpus:
print('on "{}", hyperthreading is '.format(cpu.DeviceID), end='')
if cpu.NumberOfCores < cpu.NumberOfLogicalProcessors:
print('active')
else:
print('inactive')
Sulla mia macchina, l'output è:
su "CPU0", hyperthreading è attivo
Vedere altro info at msdn che descrive cosa può essere prelevato dalla classe Win32_Processor.
su Windows, per vedere se l'hyperthreading è enbabled si può fare un po 'di magia WMI con pywin32:
idea sbagliata! Sul mio Core2Due (senza alcun hyperthrating) Dà stessa uscita:
<on "CPU0", hyperthreading is active>
Penso che è necessario modificare stringa nel codice:
(senza LowerOrEqual appena inferiore)
- 1. Come scoprire se il GPS di un dispositivo Android è abilitato
- 2. Come verificare se PHP mail() è abilitato?
- 3. Verifica se javascript è abilitato
- 4. Come scoprire se il computer è connesso a Internet?
- 5. Rileva se HTC "Avvio veloce" è abilitato
- 6. Determina se il modulo Magento è abilitato
- 7. Verificare se JNA è abilitato in Cassandra
- 8. Databinding Abilitato se falso
- 9. Python - scoprire quanto di un'immagine è nero
- 10. scoprire se la console è disponibile
- 11. Scoprire se una colonna NON È NULLA
- 12. Scoprire se il tipo è istantaneo
- 13. Scoprire se l'attività Android è in esecuzione
- 14. scoprire se un oggetto C++ è richiamabile
- 15. Come rilevare se ASP.NET è abilitato in IIS 7
- 16. Come verificare se il rilevamento delle modifiche è abilitato
- 17. Come verificare se il bluetooth è abilitato su un dispositivo
- 18. Come determinare se un motore TTS specifico è selezionato (abilitato)?
- 19. Come verificare se NFC è abilitato o meno in Android?
- 20. SQL Server: come verificare se CLR è abilitato?
- 21. Come posso rilevare se un prodotto firewall è abilitato?
- 22. Come determinare se l'account utente è abilitato o disabilitato
- 23. come verificare se allow_url_fopen è abilitato o meno
- 24. Come verificare se un pulsante è abilitato e disabilitato in Webdriver Python?
- 25. Come scoprire se una variabile membro è in sola lettura?
- 26. Come scoprire se un file è stato modificato?
- 27. Come scoprire se un indirizzo di Ethereum è un contratto?
- 28. PHP - Come scoprire se X-Sendfile è disponibile e installato?
- 29. come scoprire se la sessione audio è attiva su iOS
- 30. Come scoprire se un hash Perl è multidimensionale?
possibile duplicato [Python: soluzione multipiattaforma per rilevare le CPU fisiche non HT?] (Http: // StackOverflow.it/questions/10152173/python-cross-platform-solution-to-detect-physical-non-ht-cpus) – Blender
sei su linux o windows? La risposta sarà diversa, non credo esista una soluzione indipendente dalla piattaforma – pyCthon