如何安装和导入openmp通过numba使用?
Posted
技术标签:
【中文标题】如何安装和导入openmp通过numba使用?【英文标题】:How to install and import openmp to use it through numba? 【发布时间】:2022-01-19 08:42:07 【问题描述】:我正在 python 中使用 numba 构建程序,我需要使用 openmp 作为 numba 线程层。 我正在努力让它启动并运行。
我访问过以下网站:
-
http://numba.pydata.org/numba-doc/latest/user/installing.html#installing-from-source
https://numba.readthedocs.io/en/stable/user/threading-layer.html
https://tigress-web.princeton.edu/~jdh4/PyOMPintro.pdf
我已经安装了 pip 'intel-openmp'。但是,以下代码会导致导入错误:
import importlib
openmp = importlib.import_module("intel-openmp")
获得:
ModuleNotFoundError: No module named 'intel-openmp'
'intel-openmp' 在我运行 conda list
时显示为一个包。我在这里错过了什么?
另外,如果我尝试类似:
from numba import threading_layer
from numba import config, njit, threading_layer
config.THREADING_LAYER = 'omp'
原因:
ImportError: cannot import name 'threading_layer'
有人可以帮忙吗?我对 Python 和 Numba 比较陌生,所以可能缺少一些关键概念。
这是我第一次发帖,如有不符合要求,敬请见谅。
谢谢
【问题讨论】:
【参考方案1】:这对我来说似乎工作正常:
$ pip install numba
Collecting numba
Downloading numba-0.54.1-cp39-cp39-macosx_10_14_x86_64.whl (2.3 MB)
|████████████████████████████████| 2.3 MB 2.6 MB/s
Collecting numpy<1.21,>=1.17
Downloading numpy-1.20.3-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
|████████████████████████████████| 16.1 MB 6.7 MB/s
Requirement already satisfied: setuptools in ./sqlapi_test/lib/python3.9/site-packages (from numba) (59.0.1)
Collecting llvmlite<0.38,>=0.37.0rc1
Downloading llvmlite-0.37.0-cp39-cp39-macosx_10_9_x86_64.whl (19.1 MB)
|████████████████████████████████| 19.1 MB 11.0 MB/s
Installing collected packages: numpy, llvmlite, numba
Successfully installed llvmlite-0.37.0 numba-0.54.1 numpy-1.20.3
导入threading_layer:
$ python
Python 3.9.9 (main, Nov 21 2021, 03:23:44)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numba
>>> numba.__version__
'0.54.1'
>>> from numba import threading_layer
>>>
你能发布你用来安装 numba 的步骤吗?
【讨论】:
以上是关于如何安装和导入openmp通过numba使用?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python 和 numba 在 RTX GPU 中对 NVIDIA 的张量核心进行编程?
如何使用 Python 和 Numba 获取 GPU 中的 CUDA 内核数量?
如何使用 OpenMP 通过 C++ std::list 并行化 for 循环?