W większości estymatorów w scikit-learn istnieje n_jobs
parametr fit
/ predict
metody do tworzenia równoległych zadań za pomocą joblib
. Zauważyłem, że ustawienie go tak, aby -1
tworzyło tylko 1 proces Pythona i maksymalizuje rdzenie, powodując, że użycie procesora osiągnęło 2500%. Różni się to znacznie od ustawienia dodatniej liczby całkowitej> 1, która tworzy wiele procesów Pythona przy ~ 100% użyciu.
Jak ustawienie to wpływa na użycie procesora i rdzenia na wieloprocesorowym serwerze Linux? (np. czy n_jobs=8
wtedy 8 procesorów jest całkowicie zablokowanych lub czy procesory nadal rezerwują niektóre rdzenie na inne zadania / procesy?)
Ponadto dostaję MemoryError
czasem od czasu ustawienia n_jobs=-1
dużych zestawów danych. Jednak użycie pamięci zwykle wynosi około 30–40% dla pojedynczego procesu Pythona. W jaki sposób dane i pamięć są zarządzane / kopiowane w zależności od wartości n_jobs
?