Ich bin Intel (R) Core (TM) 2 Duo CPU T6600 @ 2.20GHz (wie mir von cat /proc/cpuinfo
erzählt), aber ich muss in so viel Tiefe wie möglich re gehen. Architektur für das Arbeiten an paralleler Programmierung (wahrscheinlich mit pthreads
). Irgendwelche Zeiger?Wie finde ich Informationen zur parallelen Architektur meiner CPU?
Antwort
Das sys-Dateisystem kennt alle dazu:
$ ls /sys/devices/system/cpu
cpu0 cpu2 cpuidle possible sched_mc_power_savings
cpu1 cpu3 online present
$ ls /sys/devices/system/cpu/cpu0/topology/
core_id core_siblings_list thread_siblings
core_siblings physical_package_id thread_siblings_list
Hier ist die documentation
dieses Dateisystem verwenden, können Sie herausfinden, wie viele CPUs Sie haben, wie viele Threads sie haben, welche CPUs sind neben welchen anderen CPUs, und welche CPUs teilen Caches mit welchen anderen.
Zum Beispiel - Q: Welche CPUs teilt CPU L2 mit seinem L2-Cache?
$ cat /sys/devices/system/cpu/cpu0/cache/index2/{type,level,shared_cpu_list}
Unified
2
0-1
A: Es teilt seinen vereinigten L2-Cache mit cpu1 (und sich selbst).
Weiteres Beispiel: Q: die CPUs in der gleichen physikalischen Paket als CPU0 sind (auf eine größere Maschine):
cat /sys/devices/system/cpu/cpu0/topology/core_siblings
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000055
A: Kerne 0, 2, 4 und 6 (von dem Bitmuster genommen oben, haben lsb = cpu0)
nicht alle linux-Systeme die sys-Dateisystem in, und es ist nicht immer in root. (möglicherweise in proc/sys?). Das Formular thread_siblings_list ist nicht immer verfügbar, aber thread_siblings (Bitmuster) ist eins.
Um die niedrigsten Details über den Prozessor zu erhalten, könnte ein Systemingenieur das Äquivalent zu CPUZ ausführen und die niedrigsten Ebenen erreichen, wenn dies für die Privat- oder Büroadresse zulässig ist, wo der Prozessor installiert und verwendet werden soll. Softwareingenieuren und -entwicklern ist es normalerweise nicht gestattet, diese Detailgenauigkeit zu kennen, aber ich kann Ihnen sagen, dass die Architektur von dem Typ sein kann, bei dem ein Prozessor einen virtuellen zweiten Prozessor erzeugt oder in der Nähe von x1.75 verarbeitet physische Mehrfachkerne auf demselben Chip unter Verwendung von Technologie und Steuerungsmethoden als Verbesserungen von früheren Implementierungen des Entwurfs. Der Core-Prozessor verfügt über eine Schnittstelle für Systemprogrammierer, Anwendungsentwickler und diese Art des Zugriffs wäre die Erwartung von Intel, Details, die von ihnen verfügbar sind.
Ich fand lstopo
der hwloc project ziemlich nützlich. Dies gibt Ihnen eine grafische Ausgabe (basierend auf Informationen in /proc
und /sys
als Alex Brown beschrieben) der Topologie Ihres Systems (siehe ihre Webseite für ein Beispiel).Von der grafischen Ausgabe, die Sie leicht
- wenn Hyperthreaded Kerne vorhanden sind
- die CPU-Nummern entsprechen, sind verschiedene Hyper-Threads auf dem gleichen physischen Kern
- wie viele CPU-Sockel verwendet werden
- sehen die Kerne teilen die L3-Cache
- wenn der Hauptspeicher zwischen CPU-Sockel oder ob Sie auf einem NUMA-System
usw.
Wenn Sie programmgesteuert auf diese Informationen zugreifen müssen, gibt es einige Dokumentationen, wie hwloc
als Bibliothek verwendet werden kann.
- 1. Wo finde ich umfassende Informationen zur Bildbearbeitungsbibliothek?
- 2. Wie finde ich meine CPU-Topologie?
- 3. Wo finde ich Informationen zur Struktur des Delphi VMT?
- 4. Wo finde ich Informationen zur Entwicklung von Opera Unite? [schließen]
- 5. Wo finde ich Informationen zur Assemblerspezifikation für das Motorola 68000?
- 6. Wo finde ich Ressourcen und Informationen zur ActiveRecord-Optimierung?
- 7. Atomarität in einer parallelen Bus-CPU
- 8. Wie finde ich Informationen zum Anrufer?
- 9. bestimmen CPU-Architektur in D
- 10. Ermitteln der CPU-Architektur Kompilierzeit
- 11. Wie gefälschte CPU Architektur in Docker Container?
- 12. Wo finde ich Informationen zu NOSQL-Implementierungsmustern?
- 13. Architektur meiner Anwendung
- 14. ICC vs GCC - Optimierung und CPU-Architektur
- 15. Wie kann ich die CPU-Informationen in .net bekommen?
- 16. Wie sammle ich Informationen von jeder einzelnen CPU?
- 17. Wie finde ich CPU intensive Klasse auf dem Mac?
- 18. Wie kann ich mysqld mehr als 24,9% meiner CPU verwenden?
- 19. Informationen zur freien Speicherplatzgröße
- 20. Wie stelle ich Informationen zu interessanten/wichtigen Seiten auf meiner Website zur Verfügung?
- 21. Wie finde ich Informationen über eine Funktion in Python?
- 22. Wie finde ich die Ordner Informationen im Dokumentverzeichnis
- 23. Wie finde ich ein Array-Objekt nach gegebenen Informationen?
- 24. Ermitteln der CPU-Architektur einer statischen Bibliothek (LIB) unter Windows
- 25. Bestimmen Sie eine CPU-Architektur OHNE os installiert
- 26. Go-Port zur AVR-Architektur?
- 27. Wie speichere ich Informationen in meiner ausführbaren Datei in. NET
- 28. Plattformübergreifende Methode zur CPU/Speicherauslastung
- 29. Go CPU-Profil fehlt Funktionsaufruf Informationen
- 30. Wie finde ich die Arbeiter in meiner Elixir-Anwendung?