相关疑难解决方法(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万
查看次数

限制numpy中的线程数

看来我的numpy库正在使用4个线程,而设置OMP_NUM_THREADS=1并没有阻止它.

numpy.show_config() 给我这些结果:

atlas_threads_info:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = f77
    include_dirs = ['/usr/include']
blas_opt_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = c
    include_dirs = ['/usr/include']
atlas_blas_threads_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = c
    include_dirs = ['/usr/include']
openblas_info:
  NOT AVAILABLE
lapack_opt_info:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')] …
Run Code Online (Sandbox Code Playgroud)

python multithreading numpy

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

num_threads与omp_set_num_threads之间的差异与OMP_NUM_THREADS之间的差异

我对于在代码的并行部分中指定线程数的方法感到很困惑.我知道我可以用:

  1. 环境变量OMP_NUM_THREADS
  2. function omp_set_num_threads(int)
  3. num_threads(int)in #pragma omp parallel for num_threads(NB_OF_THREADS)

到目前为止我收集的前两个是等价的.但是第三个呢?有人可以提供更详细的差异说明,我无法在互联网上找到有关1/2和3之间差异的任何信息.

parallel-processing openmp

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

限制python多处理中的总CPU使用率

我使用multiprocessing.Pool.imap在Windows 7上使用Python 2.7并行运行许多独立作业.使用默认设置,我的总CPU使用率固定为100%,由Windows任务管理器测量.这使得我的代码在后台运行时无法执行任何其他工作.

我已经尝试将进程数限制为CPU数减1,如如何限制Python使用的处理器数量中所述:

pool = Pool(processes=max(multiprocessing.cpu_count()-1, 1)
for p in pool.imap(func, iterable):
     ...
Run Code Online (Sandbox Code Playgroud)

这确实减少了正在运行的进程总数.但是,每个过程只需要更多的周期来弥补它.所以我的总CPU使用率仍然固定为100%.

有没有办法直接限制总CPU使用率 - 不仅仅是进程数量 - 或者失败,是否有任何解决方法?

cpu-usage multiprocessing python-2.7

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

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

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

谢谢

python multithreading scikit-learn

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