Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die Thread-Auslastung von Numpy begrenzen, wenn OMP_NUM_THREADS=1 fehlschlägt?

Wie kann ich die Thread-Auslastung von Numpy begrenzen, wenn OMP_NUM_THREADS=1 fehlschlägt?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-19 12:28:02641Durchsuche

How to Limit Numpy's Thread Utilization When OMP_NUM_THREADS=1 Fails?

Anzahl der Threads in Numpy begrenzen

Trotz Versuchen, OMP_NUM_THREADS=1 festzulegen, kann Numpy in bestimmten Situationen weiterhin mehr als einen Thread verwenden. Um die Ursache dieses Problems zu ermitteln und eine gewünschte Thread-Anzahl von 1 für die Matrixmultiplikation zu erreichen, untersuchen wir die Umgebungsvariablen, die die Thread-Nutzung steuern.

Numpys Konfiguration, abrufbar über numpy.show_config(), verrät die Verwendung der BLAS-Bibliothek (Basic Linear Algebra Subroutines), die als Rechenmaschine dient. Allerdings kann es schwierig sein, die von Numpy verwendete spezifische BLAS-Implementierung zu identifizieren.

Um die Anzahl der in BLAS verwendeten Threads zu begrenzen, können wir vor der Ausführung des Skripts Umgebungsvariablen festlegen. Zu den häufig verwendeten Bibliotheken gehören OpenBLAS, MKL (Intel Math Kernel Library) und NUMEXPR:

export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export OMP_NUM_THREADS=1

Denken Sie daran, dass es wichtig ist, diese Variablen festzulegen, bevor Sie das Skript ausführen. Wenn weiterhin mehrere Threads vorhanden sind, kann dies darauf hindeuten, dass Multithreading aus einer anderen Quelle eingeführt wurde, beispielsweise aus einer zusätzlichen Bibliothek oder einem Code in Ihrem Skript.

Das obige ist der detaillierte Inhalt vonWie kann ich die Thread-Auslastung von Numpy begrenzen, wenn OMP_NUM_THREADS=1 fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn