In den meisten Schätzern für Scikit-Learn gibt es n_jobs
in fit
/ predict
Methoden einen Parameter zum Erstellen paralleler Jobs mit joblib
. Ich habe festgestellt, dass durch das Festlegen von -1
nur 1 Python-Prozess die Kerne maximal genutzt werden und die CPU-Auslastung 2500% übersteigt. Dies unterscheidet sich erheblich von der Einstellung auf eine positive Ganzzahl> 1, wodurch mehrere Python-Prozesse bei einer Auslastung von ~ 100% erstellt werden.
Wie wirkt sich die Einstellung auf die CPU- und Kernauslastung auf einem Linux-Server mit mehreren CPUs aus? (zB wenn n_jobs=8
dann 8 CPUs vollständig gesperrt sind oder reservieren die CPUs noch einige Kerne für andere Aufgaben / Prozesse?)
Außerdem bekomme ich MemoryError
gelegentlich bei der Einstellung n_jobs=-1
für große Datenmengen. Die Speichernutzung liegt jedoch normalerweise bei etwa 30-40% für den einzelnen Python-Prozess. Wie werden die Daten und der Speicher abhängig vom Wert von verwaltet / kopiert n_jobs
?