Trong hầu hết các công cụ ước tính trên scikit-learn, có một n_jobs
tham số trong fit
/ predict
phương thức để tạo các công việc song song bằng cách sử dụng joblib
. Tôi nhận thấy rằng thiết lập nó để -1
tạo ra chỉ 1 quá trình Python và tối đa hóa các lõi, khiến việc sử dụng CPU đạt 2500% trên đầu trang. Điều này hoàn toàn khác với việc đặt nó thành một số nguyên dương> 1, tạo ra nhiều quy trình Python với mức sử dụng ~ 100%.
Làm thế nào để thiết lập nó ảnh hưởng đến việc sử dụng CPU & lõi trên máy chủ Linux đa CPU? (ví dụ: nếu n_jobs=8
8 CPU bị khóa hoàn toàn hoặc CPU vẫn dự trữ một số lõi cho các tác vụ / quy trình khác?)
Ngoài ra, tôi MemoryError
thỉnh thoảng nhận được khi cài đặt n_jobs=-1
cho các bộ dữ liệu lớn. Tuy nhiên, việc sử dụng bộ nhớ thường dao động ở mức khoảng 30-40% cho quy trình Python đơn. Dữ liệu & bộ nhớ được quản lý / sao chép như thế nào tùy thuộc vào giá trị của n_jobs
?