[英]Python only uses one core
我有一个 python 脚本,它处理带有来自 md4 文件的传感器数据的文件,并将它们绘制在图像中。 因此,我使用 libs asammdf和matplotlib - 它们依赖于numpy 。
在我开发脚本的 Windows 主计算机上,一切正常 - 使用了所有线程并且脚本的速度很好。 但是在脚本也应该运行以处理更多文件的其他设备上,脚本只使用一个内核和多个线程,而在 Ubuntu 16.04 上运行时使用自己编译的 python 3.7.0:
我搜索了很多并尝试了所有建议的内容 - 其中一些对于 ubuntu 12 来说有点旧..:
https://shahhj.wordpress.com/2013/10/27/numpy-and-blas-no-problemo/
导入 scipy 会破坏 Python 中的多处理支持
为什么导入 numpy 后多处理只使用一个核心?
linux 机器是新安装的——只安装了 python3.7、pip3 和 python 库。 我什至下载了最新的 ubuntu 19.10 映像,其中预装了 python3.7.5。 我做了什么:
pid 20534 的当前关联掩码:ff
pid 20534 的新关联掩码:ff
在我的 Windows 机器上,我有:python 3.7.1 和>>> import numpy; numpy.show_config()
的输出>>> import numpy; numpy.show_config()
>>> import numpy; numpy.show_config()
blas_mkl_info: NOT AVAILABLE blis_info: NOT AVAILABLE openblas_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] blas_opt_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] lapack_mkl_info: NOT AVAILABLE openblas_lapack_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] lapack_opt_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)]
在我的 linux 机器上:python 3.7.0 和 numpy 配置:
blas_mkl_info:
NOT AVAILABLE
blis_info:
NOT AVAILABLE
openblas_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
NOT AVAILABLE
openblas_lapack_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
我的代码中没有任何多线程逻辑或类似的东西 - 所有多线程逻辑都是在我使用的库中处理的。 我希望有人能帮帮忙。 我觉得很奇怪,我在上面链接的问题这么多年后仍然有这种问题。
编辑:原因问题被删除:我在 bios 中检查了所有内核和超线程都已激活
asammdf 是完全单线程的。 在 Windows 机器上,您可能将 numpy 与 Intel mkl 库一起使用,因此这可能是 numpy 操作被矢量化的原因
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.