Ich habe eine Ausgabe lstopo --output-format txt -v --no-io > lstopo.txt
für einen 8-Kern-Knoten in einem Cluster, nämlich https://dl.dropboxusercontent.com/u/13029929/lstopo.txt
Die Datei ist eine Textzeichnung des Knotens. Es ist sowohl für das Terminal als auch für gedit unter Ubuntu meines Laptops zu breit, und ein Teil seiner rechten Seite wird von meinem Laptop nach links verschoben und überlappt den linken Teil der Zeichnung. Ich frage mich, wie ich die Datei richtig anzeigen kann. (Hinzugefügt: Mir ist klar, dass ich die Zeichnung richtig anzeigen kann, indem ich sie in die Dropbox hochlade und in Firefox öffne, wodurch die Zeichnung richtig verkleinert wird. Wenn Sie jedoch die lokale Datei in Firefox öffnen, werden die Strichlinien "-" falsch angezeigt, und ich frage mich, warum ? Außer Firefox kann auch jede Software daran arbeiten?)
Was bedeutet "PU P #" in jedem Kern "Core P #"? Warum sind ihre Zahlen nicht gleich?
Bedeutet "L1i" einen L1-Anweisungscache und "L1d" einen L1-Datencache?
Warum unterscheiden L2- und L3-Caches nicht zwischen Befehls-Cache und Daten-Cache? Ist das bei Computern üblich?
Was bedeutet "Socket P #"? Wird der "Socket" für die Verbindung zwischen den L3-Caches und dem Hauptspeicher verwendet?
Was bedeutet "NUMANode P # (16 GB)"? Ist es ein Hauptspeicherchip?
Zeigt die Zeichnung, dass sich vier Kerne einen Hauptspeicherchip und die anderen vier Kerne einen anderen Hauptspeicherchip teilen?
Gibt es nicht einen Hauptspeicher, der von allen 8 Kernen im Knoten gemeinsam genutzt wird? Ist der Knoten also wie ein verteiltes System mit zwei 4-Kern-Computern ohne gemeinsamen Speicher? Wie können die beiden 4-Kern-Gruppen miteinander kommunizieren?
Bedeutet "Maschine (32 GB)" die Summe der Größen der beiden in 6 genannten Hauptspeicherchips?
hwloc
Pakets. open-mpi.org/projects/hwlocsudo apt-get install hwloc
.Antworten:
Hier sind die Antworten auf Ihre Fragen:
Ich würde es eher als grafisches Bild als als ASCII-Bild betrachten.
HINWEIS: Sie können die generierte Datei cpu.png anzeigen
"PU P #" = Prozessor der Verarbeitungseinheit #. Dies sind Verarbeitungselemente innerhalb der Kerne der CPU. Auf meinem Laptop (Intel i5) habe ich 2 Kerne mit jeweils 2 Verarbeitungselementen, also insgesamt 4. Aber in Wirklichkeit habe ich nur 2 physische Kerne.
L # i = Anweisungscache, L # d = Datencache. L1 = ein Level 1 Cache.
In den Intel-Architekturen werden die Anweisungen und Daten gemischt, wenn Sie von L1 → L2 → L3 nach unten gehen.
"Socket P #" bedeutet, dass sich 2 physische Sockel auf dem Motherboard befinden. In diesem Setup befinden sich 2 physisch diskrete CPUs.
In mehreren CPU-Architekturen wird der RAM normalerweise so aufgeteilt, dass jedem Kern ein Teil davon zugewiesen wird. Wenn CPU0 Daten aus dem RAM von CPU1 benötigt, muss es diese Daten über CPU1 "anfordern". Es gibt eine Reihe von Gründen, warum dies getan wird, zu viele, um hier näher darauf einzugehen. Informieren Sie sich über Speicherarchitekturen im NUMA-Stil, wenn Sie wirklich neugierig sind.
Die Zeichnung zeigt 4 Kerne (mit jeweils 1 Verarbeitungseinheit), die sich in 2 physischen CPU-Paketen befinden. Jede physische CPU hat "isolierten" Zugriff auf 16 GB RAM.
Nein, es gibt keinen gemeinsamen Speicher zwischen allen CPUs. Die 2 CPUs müssen über die CPU mit dem RAM des anderen interagieren. Weitere Informationen zur uneinheitlichen Speicherarchitektur finden Sie in der NUMA-Wikipage .
Ja, das System verfügt über insgesamt 32 GB RAM. Auf nur die Hälfte des Arbeitsspeichers kann jedoch jede physische CPU direkt zugreifen.
Was ist eine Steckdose?
Ein Socket ist der Begriff, der verwendet wird, um das tatsächliche Paket zu beschreiben, in dem sich eine CPU befindet, um auf dem Motherboard montiert zu werden. Es gibt viele verschiedene Stile und Konfigurationen. Schauen Sie sich die Wikipedia-Seite zu CPU-Sockeln an .
Dieses Bild zeigt auch die Beziehungen zwischen den "Kernen", den CPUs und den "Sockeln".
quelle
Sie können den
lstopo-no-graphics --no-io --no-legend --of txt
Befehl direkt verwenden, um eine grafische Ansicht Ihres Terminals zu erhaltenMöglicherweise müssen Sie das
yum install hwloc
Paket installieren , wenn der Befehl fehlt.quelle