Nella maggior parte degli stimatori su scikit-learn, c'è un n_jobs
parametro in fit
/ predict
metodi per creare lavori paralleli usando joblib
. Ho notato che impostandolo su -1
crea solo 1 processo Python e massimizza i core, facendo sì che l'utilizzo della CPU raggiunga il 2500% in cima. Questo è abbastanza diverso dall'impostarlo su un numero intero positivo> 1, che crea più processi Python con un utilizzo del ~ 100%.
In che modo l'impostazione influisce sull'utilizzo della CPU e del core su un server Linux multi-CPU? (ad es. se n_jobs=8
quindi 8 CPU sono completamente bloccate o le CPU riservano ancora alcuni core per altre attività / processi?)
Inoltre, ottengo MemoryError
occasionalmente quando si imposta n_jobs=-1
per set di dati di grandi dimensioni. Tuttavia, l'utilizzo della memoria di solito si aggira intorno al 30-40% per il singolo processo Python. In che modo i dati e la memoria vengono gestiti / copiati in base al valore di n_jobs
?