Na maioria dos estimadores no scikit-learn, há um n_jobsparâmetro em fit/ predictmethods para criar trabalhos paralelos usando joblib. Notei que configurá-lo para -1criar apenas 1 processo Python e maximizar os núcleos, fazendo com que o uso da CPU atinja 2500% no topo. Isso é bem diferente de configurá-lo para um número inteiro positivo> 1, que cria vários processos Python com ~ 100% de uso.
Como essa configuração afeta o uso da CPU e do núcleo em um servidor Linux com várias CPUs? (por exemplo, se n_jobs=8há 8 CPUs totalmente bloqueadas ou as CPUs ainda reservam alguns núcleos para outras tarefas / processos?)
Além disso, recebo MemoryErrorocasionalmente ao definir n_jobs=-1grandes conjuntos de dados. No entanto, o uso de memória geralmente oscila entre 30 e 40% para o único processo Python. Como os dados e a memória estão sendo gerenciados / copiados, dependendo do valor de n_jobs?