如何安装和导入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 内核数量?

如何在 XCode 7 中应用支持 OpenMP

如何使用 OpenMP 通过 C++ std::list 并行化 for 循环?

如何使 numba @jit 使用所有 cpu 内核(并行化 numba @jit)

如何使用 numba 在 GPU 上泛化快速矩阵乘法