मैं अपने फोरट्रान कोड को तेज़ करने के लिए ओपनएमपी का उपयोग करने की उम्मीद कर रहा था जिसे मैं f2py के माध्यम से चलाता हूं। हालांकि, सफलतापूर्वक संकलित करने के बाद, मैं पाइथन में मॉड्यूल आयात नहीं कर सकता।ओएमपी के साथ f2py: मॉड्यूल आयात नहीं कर सकता, अपरिभाषित प्रतीक 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_ * त्रुटियां मिलती हैं। निर्देशों के बिना (लेकिन -openmp ध्वज के साथ) यह काम करता है।
किसी भी मदद की सराहना की जाएगी।
बढ़िया काम करता है! मैं थोड़ी सी जानकारी जोड़ूंगा जो मैंने आपके उत्तर के कारण पाया, उम्मीद है कि यह ठीक है। – Mark
@ मार्क, संपादन बहुत अच्छा है, धन्यवाद! –