В большинстве оценок в scikit-learn в n_jobsпараметре fit/ predictmethod есть параметр для создания параллельных заданий с использованием joblib. Я заметил, что его установка -1создает всего 1 процесс Python и максимально увеличивает количество ядер, в результате чего загрузка ЦП достигает 2500% сверху. Это сильно отличается от установки некоторого положительного целого числа> 1, которое создает несколько процессов Python при ~ 100% использовании.
Как его настройка влияет на использование процессора и ядра на многопроцессорном сервере Linux? (например, если n_jobs=8тогда 8 процессоров полностью заблокированы или процессоры все еще резервируют некоторые ядра для других задач / процессов?)
Кроме того, я получаю время от MemoryErrorвремени при настройке n_jobs=-1больших наборов данных. Тем не менее, использование памяти обычно колеблется в пределах 30-40% для одного процесса Python. Как данные и память управляются / копируются в зависимости от значения n_jobs?