Я надеялся использовать openmp для ускорения моего кода Fortran, который я запускаю через f2py. Однако после успешного компиляции я не могу импортировать модуль в Python.f2py с OMP: невозможно импортировать модуль, неопределенный символ GOMP_ *
Для модуля 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
Составитель и импортирован с этими командами:
f2py -m SOmod --fcompiler=gnu95 --f90flags='-march=native -O3 -fopenmp' -c SOtest.f95
python2 -c "import SOmod"
Я получаю сообщение об ошибке. Ошибка для импорта - компиляция работает отлично как с f2py, так и с gfortran напрямую (только получить предупреждение о «Использование устаревших NumPy API»).
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: ./SOmod.so: undefined symbol: GOMP_barrier
У меня разные ошибки GOMP_ * для разных директив OMP. Без директив (но с флагом -openmp) он работает.
Любая помощь была бы принята с благодарностью.
Отлично работает! Я добавлю немного информации, которую я нашел из-за вашего ответа, надеюсь, что все в порядке. – Mark
@Mark, редактирование отлично, спасибо! –