Я новый пользователь openmp.Я написал следующий код на фортране и попытался добавить к нему параллельную функцию, используя openmp.К сожалению, это занимает то же время, что и серийная версия этой подпрограммы.Я компилирую его с помощью этой команды f2py.Я уверен, что мне не хватает ключевой концепции, но я не могу ее понять.Буду очень признателен за помощь в этом.
! F2py -c --opt = '- O3' --f90flags = '- fopenmp' -lgomp -m g3Test g3TestA.f90
exp1 =0.0
exp2 =0.0
exp3 =0.0
!$OMP PARALLEL DO shared(xConfig,s1,s2,s3,c1,c2,c3) private(h)&
!$OMP REDUCTION(+:exp1,exp2,exp3)
do k=0,numRows-1
xConfig(0:2) = X(k,0:2)
do h=0,nPhi-1
exp1(h) = exp1(h)+exp(-((xConfig(0)-c1(h))**2)*s1)
exp2(h) = exp2(h)+exp(-((xConfig(1)-c2(h))**2)*s2)
exp3(h) = exp3(h)+exp(-((xConfig(2)-c3(h))**2)*s3)
end do
end do
!$OMP END PARALLEL DO
ALine = exp1+exp2+exp3