У більшості оцінювачів на 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
?