Я использую функцию извлечения свойств sklearn RFECV, которая имеет параметр "n_jobs" для распределения использования ядра.
У меня процессор Intel i5-8400 @ 2,80 ГГц (6 ядер)
Я использую Ubuntu 16.04 (64-разрядная версия).последние версии python, sklearn и т. д.
У меня одновременно работают 2 ноутбука Jupyter.Я выделил 5 ядер одному и 1 ядру другому с параметром n_jobs в RFECV.
Вот код, вызывающий 5 ядер, который не работает должным образом:
logreg = LogisticRegression()
rfe = RFECV(logreg, step=3, cv=10, n_jobs=5)
rfe = rfe.fit(X_lab, y_lab)
y_pred=rfe.predict(X_lab),
В любом случае, когда я заснул, просматривая загрузку процессора командой linux 'top', он показал, что все 6 ядер активны и почти на 100% загружены (что я и ожидал).Однако, когда я проснулся, только 2 работают, как вы можете видеть из первых 3 строк «top» вызова в linux:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10790 ted 20 0 1489568 416948 37064 R 100.0 1.7 2456:08 python3.6
781 ted 20 0 1621052 392824 36348 R 99.7 1.6 13:04.46 python3.6
937 root 20 0 481136 106528 83944 S 8.0 0.4 42:49.95 Xorg
У меня довольно хорошая система жидкостного охлаждения в моем процессоре, много оперативки, и я не разгоняюсь.Перегрузил ли я свой процессор, или это возможно из-за того, как реализован параллелизм в sklearn, или из-за чего-то совершенно другого?Есть идеи?