これは実際の問題ではありませんが、理解したいと思います。
- Win7 4 コア 8 GB システムで Anaconda ディストリビューションから sklearn を実行する
- 200.000 サンプル * 200 値テーブルに KMeans モデルを当てはめます。
- n-jobs = -1: で実行: (この
if __name__ == '__main__':
行をスクリプトに追加した後) スクリプトがそれぞれ 10 スレッドで 4 つのプロセスを開始しているのがわかります。各プロセスは、CPU の約 25% を使用します (合計: 100%)。期待どおりに動作するようです - n-jobs = 1 で実行: 20 スレッドの単一プロセスにとどまり (驚くことではありません)、CPU の 100% も使用します。
私の質問: ライブラリがとにかくすべてのコアを使用している場合、n-jobs (および joblib) を使用するポイントは何ですか? 何か不足していますか?それはWindows固有の動作ですか?