相关疑难解决方法(0)

Python:你如何阻止多线程的numpy?

我知道这可能看起来像一个荒谬的问题,但我必须定期在计算服务器上运行工作,我与部门中的其他人分享,当我开始10个工作时,我真的希望它只需要10个核心而不是更多; 我不关心每次运行一个核心需要多长时间:我只是不希望它侵占其他人的领域,这需要我重新安排工作等等.我只想拥有10个实心核心,就是这样.

更具体地说,我在Redhat上使用Enthought 7.3-1,它基于Python 2.7.3和numpy 1.6.1,但问题更为笼统.我一直在谷歌搜索这个问题的某种答案几个小时无济于事,所以如果有人知道numpy的转换可以关闭多线程,请告诉我.

python multithreading numpy

47
推荐指数
4
解决办法
1万
查看次数

python中的无意识多线程(scikit-learn)

我正在使用sklearn模块的混合子模块用于高斯混合模型...当我在多核系统上运行我的代码时,它使用多个核,即使我在代码中没有要求它.这是默认行为吗?更重要的是,我该如何禁用它?

谢谢

python multithreading scikit-learn

5
推荐指数
1
解决办法
2913
查看次数

Python scikit学习n_jobs

这不是一个真正的问题,但我想了解:

  • 在Win7 4核8 GB系统上从Anaconda distrib运行sklearn
  • 在200.000个样本* 200个值表上拟合KMeans模型。
  • 使用n-jobs = -1运行(在将if __name__ == '__main__':行添加到脚本后),我看到脚本以4个进程开始,每个进程有10个线程。每个进程使用大约25%的CPU(总计:100%)。似乎按预期工作
  • 使用n-jobs = 1运行:停留在单个进程上(不足为奇),具有20个线程,并且还使用100%的CPU。

我的问题:如果库仍然使用所有内核,使用n-jobs(和joblib)有什么意义?我想念什么吗?它是Windows特定的行为吗?

python parallel-processing scikit-learn joblib

5
推荐指数
2
解决办法
1万
查看次数

为什么设置“export OPENBLAS_NUM_THREADS=1”会损害性能?

我尝试按照本文档的建议设置“export OPENBLAS_NUM_THREADS=1” 。但我发现一个奇怪的现象,设置这个会显着损害我的 RL 算法的性能(我对 TD3 和 SAC 做了一些测试,所有结果一致表明“导出 OPENBLAS_NUM_THREADS=1”会损害性能)。为什么会造成这么大的问题呢?

顺便说一句,算法是使用 Tensorflow1.13 实现的,数据通过tf.data.Dataset输入神经网络。所有测试均在OpenAI Gym 的BipedalWalker-v2环境中完成。

python multithreading reinforcement-learning openblas tensorflow

4
推荐指数
1
解决办法
1万
查看次数