Einführung:
Ziele von Multiprocessing, einer Python-Bibliothek zur Parallelisierung von Aufgaben um die Arbeit auf mehrere Kerne zu verteilen. Benutzer sind jedoch auf ein Problem gestoßen, bei dem der Import von Numpy diese Verteilung stört, was dazu führt, dass alle Arbeitsprozesse einem einzelnen Kern zugewiesen werden.
Erklärung:
Beim Importieren von Numpy Bestimmte CPU-intensive Module in Numpy (z. B. OpenBLAS) können die Kernaffinität ändern. Durch diese Interferenz werden alle Arbeitsprozesse demselben Kern zugewiesen, wodurch die Parallelisierungsvorteile der Mehrfachverarbeitung entfallen.
Problemumgehung:
Um dieses Problem zu beheben, setzen Sie die Aufgabenaffinität mithilfe des Codes zurück Snippet: os.system("taskset -p 0xff %d" % os.getpid()). Dieser Befehl zwingt das Betriebssystem, Arbeitsprozesse gleichmäßig auf alle verfügbaren Kerne zu verteilen.
Zusätzliche Überlegungen:
Alternative Lösungen:
Durch die Anwendung dieser Lösungen kann Multiprocessing Arbeitsprozesse effektiv auf mehrere Kerne verteilen. Lösung des anfänglichen Problems des Kernclusterings und Verbesserung der Parallelisierungsleistung.
Das obige ist der detaillierte Inhalt vonWarum beschränkt der Import von Numpy die Multiverarbeitung auf einen einzelnen Kern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!