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