我希望使用openmp来加速我在f2py中运行的Fortran代码。但是,在编译成功后,我无法导入Python中的模块。在
对于这样的Fortran95模块:
module test
implicit none
contains
subroutine readygo()
real(kind = 8), dimension(10000) :: q
!$OMP WORKSHARE
q = 7
!$OMP END WORKSHARE
end subroutine
end module
使用以下命令编译和导入:
^{pr2}$我得到一个错误。错误在于导入-直接使用f2py或gfortran编译都可以正常工作(只会收到关于“使用不推荐使用的NumPy API”的警告)。在
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: ./SOmod.so: undefined symbol: GOMP_barrier
对于不同的OMP指令,我得到不同的GOMP_x错误。没有指令(但是有-openmp标志)它可以工作。在
任何帮助都将不胜感激。在
我能够在Mac OS X(10.9.5)上重现该错误,使用自制程序安装了
gfortran
,并通过在命令中添加-lgomp
来修复它:由@Mark添加:请注意,}都需要它是并行的,如{a1}所述。GOMP是GNU openMP实现。在
-lgomp
是f2py的参数,而不是gfortran。尽管它只使用-gomp
进行编译,但是-gomp
和{相关问题 更多 >
编程相关推荐