En la mayoría de los estimadores en scikit-learn, hay un n_jobs
parámetro en fit
/ predict
métodos para crear trabajos paralelos utilizando joblib
. Noté que configurarlo -1
crea solo 1 proceso de Python y maximiza los núcleos, lo que hace que el uso de la CPU alcance el 2500% en la parte superior. Esto es bastante diferente de establecerlo en algún entero positivo> 1, que crea múltiples procesos de Python con un uso de ~ 100%.
¿Cómo afecta su configuración al uso de CPU y núcleo en un servidor Linux con múltiples CPU? (por ejemplo, si n_jobs=8
entonces hay 8 CPU totalmente bloqueadas o las CPU aún reservan algunos núcleos para otras tareas / procesos?)
Además, MemoryError
ocasionalmente me pongo al configurar n_jobs=-1
grandes conjuntos de datos. Sin embargo, el uso de memoria generalmente oscila entre el 30 y el 40% para el proceso de Python. ¿Cómo se gestionan / copian los datos y la memoria según el valor de n_jobs
?