这并不是一个实际的问题,但我想要了解:
- 在Win7 4核8GB系统上从Anaconda distrib运行sklearn
- 在200,000 samples*200 values表上拟合一个KMeans模型
- 使用n-jobs = -1运行:(在我的脚本中添加
if __name__ == '__main__':
后)我看到脚本启动了4个进程,每个进程有10个线程。每个进程使用约25%的CPU(总共:100%)。似乎按预期工作 - 使用n-jobs = 1运行:保持在单个进程上(不出所料),有20个线程,并且也使用100%的CPU。
n_jobs=1
时,它将使用一个核心的100% CPU。每个进程在不同的核心上运行。在具有4个核心的Linux系统中,当我使用n_jobs=1
运行时,可以清楚地看到CPU使用情况:(100%、〜5%、〜5%、〜5%)
;而当使用n_jobs=-1
运行时,则为(100%, 100%, 100%, 100%)
。每个进程占用一个给定核心的100%,但如果您使用n_jobs=1
,则只使用一个核心。 - Imanol Luengo