17

これは実際の問題ではありませんが、理解したいと思います。

  • 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固有の動作ですか?

4

3 に答える 3