Vorwort Mithilfe der Hyperthreading-Technologie von Intel können zwei Threads parallel auf einem physischen Kern ausgeführt werden, was in den meisten Fällen die Nutzung der Hardwareressourcen verbessern und die Systemleistung steigern kann. Bei CPU-intensiven numerischen Programmen kann die Hyperthreading-Technologie zu einer Verschlechterung der Gesamtprogrammleistung führen. Aus diesem Grund wird empfohlen, die Hyperthreading-Technologie beim Ausführen numerischer OpenMP- oder MPI-Programme zu deaktivieren. Das Folgende ist ein auf GitHub gefundenes Skript, das die Hyper-Threading-Technologie dynamisch ein- und ausschaltet. Das Prinzip besteht darin, die Beziehung zwischen logischen Kernen gemäß der Datei /sys/devices/system/cpu/cpuX/topology/thread_siblings_list zu finden und dann die Datei /sys/devices/system/cpu/cpuX/online zu bearbeiten, um die Hyperthreading-Technologie dynamisch ein- und auszuschalten. #!/bin/bash HYPERTHREADING=1 Funktion toggleHyperThreading() { für CPU in /sys/devices/system/cpu/cpu[0-9]*; mache CPUID=`Basisname $CPU | cut -b4-` echo -en "CPU: $CPUID\t" [ -e $CPU/online ] && echo "1" > $CPU/online THREAD1=`cat $CPU/topology/thread_siblings_list | cut -f1 -d,` wenn [ $CPUID = $THREAD1 ]; dann echo "-> aktivieren" [ -e $CPU/online ] && echo "1" > $CPU/online anders if [ "$HYPERTHREADING" -eq "0" ]; dann echo "-> deaktiviert"; sonst echo "-> aktiviert"; fi echo "$HYPERTHREADING" > $CPU/online fi Erledigt } Funktion aktiviert() { echo -en "HyperThreading aktivieren\n" HYPERTHREADING=1 HyperThreading umschalten } Funktion deaktiviert() { echo -en "HyperThreading deaktivieren\n" HYPERTHREADING=0 HyperThreading umschalten } # ONLINE=$(cat /sys/devices/system/cpu/online) OFFLINE=$(cat /sys/geräte/system/cpu/offline) echo "--------------------------------------------------" echo -en "CPUs online: $ONLINE\t CPUs offline: $OFFLINE\n" echo "--------------------------------------------------" während wahr; tun read -p "Geben Sie e ein, um HyperThreading zu aktivieren, d, um es zu deaktivieren, oder q, um es zu beenden [e/d/q]?" ed Fall $ed in [Ee]* ) aktiviert; Unterbrechung;; [Dd]* ) deaktiviert;beenden;; [Qq]* ) beenden;; * ) echo "Bitte antworten Sie mit e zum Aktivieren oder d zum Deaktivieren von HyperThreading.";; esac Erledigt Bemerkung:
siehe HyperThreading-Kerne zur Laufzeit deaktivieren/aktivieren – Linux Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: MySql 8.0.11 Installations- und Konfigurationstutorial
>>: Detaillierte Einführungshinweise zu Vue
Lassen Sie uns über einige Probleme sprechen, die ...
MySQL-Abfrage für mehrere Tabellen Hinzufügen ein...
Wenn wir eine Webseite erstellen, möchten wir man...
Die folgenden drei Methoden werden häufig verwende...
Ändern Sie die vereinfachte Dateigröße und laden ...
Ursache Der Grund für das Schreiben dieses Blogs ...
Hintergrund Letzte Woche hat das Unternehmen eine...
Ich bin heute auf ein kleines Problem gestoßen und...
nohup-Befehl Bei der Verwendung von Unix/Linux mö...
Harbor ist ein Registry-Server auf Unternehmenseb...
Wir verwenden Klickereignisse häufig im A-Tag: 1. ...
Dieser Artikel veranschaulicht anhand eines Beisp...
Das CSS-Zählerattribut wird von fast allen Browse...
Inhaltsverzeichnis Vorwort: 1. Einführung in Navi...
Inhaltsverzeichnis Überblick Code-Implementierung...