Your application calls serialized versions of math functions when you use the strict floating point model. To fix: Do one of the following:
- Use the fast floating point model to enable more aggressive optimizations or the precise floating point model to disable optimizations that are not value-safe on fast transcendental functions.
Windows* OS Linux* OS /fp:fast -fp-model fast /fp:precise /Qfast-transcendentals -fp-model precise -fast-transcendentals CAUTION: This may reduce floating point accuracy.
- Use the precise floating point model and enforce vectorization of the source loop using a directive: !$OMP SIMD
gfortran program.for -O2 -fopenmp -fp-model precise -fast-transcendentals!DIR$ OMP SIMD COLLAPSE(2)
do i = 1, N
...gfortran program.for -O2 -fopenmp -fp-model precise -fast-transcendentals!DIR$ OMP SIMD COLLAPSE(2)
do i = 1, N
a(i) = b(i) * c(i)
do j = 1, N
d(j) = e(j) * f(j)
enddo
enddo