Python 将Cython与英特尔编译器和OpenMP一起使用

Python 将Cython与英特尔编译器和OpenMP一起使用,python,openmp,intel,cython,Python,Openmp,Intel,Cython,我现在使用Cython编译器包装一个C语言程序,该程序需要OpenMP和setup.py脚本,如下所示(Cython脚本“test.pyx”导入“test.h”模块) 这是给gcc的。那么,什么是英特尔编译器(icc)对应物?有人知道答案吗 如果我只是将环境变量CC设置为icc并键入“python setup.py build_ext--inplace”,那么会出现一些错误消息,并且会自动调用gcc而不是icc(以链接对象文件)。这将导致共享对象“wrap_test.so”,由于某些错误,无法

我现在使用Cython编译器包装一个C语言程序,该程序需要OpenMP和setup.py脚本,如下所示(Cython脚本“test.pyx”导入“test.h”模块)

这是给gcc的。那么,什么是英特尔编译器(icc)对应物?有人知道答案吗



如果我只是将环境变量CC设置为icc并键入“python setup.py build_ext--inplace”,那么会出现一些错误消息,并且会自动调用gcc而不是icc(以链接对象文件)。这将导致共享对象“wrap_test.so”,由于某些错误,无法将其导入其他Python脚本。因此,我想我必须告诉Cython要在setup.py脚本中使用的一组适当的编译器、库和编译选项。

使用OpenMP支持编译的英特尔C命令行选项是
-OpenMP

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [
    Extension("wrap_test",
          ["test.pyx"],
          libraries=["gomp"],
          extra_compile_args=["-fopenmp"])]

setup(
    name="wrap_test",
    cmdclass={"build_ext": build_ext},
    ext_modules=ext_modules)