【发布时间】:2017-09-23 04:45:23
【问题描述】:
这可能是一个愚蠢的问题,但由于数据量增加,我才刚开始使用 OpenMP。
我正在阅读 Miguel Hermanns 的“使用 OpenMP 在 Fortran 95 中进行并行编程”,并且我在这本书的早期阶段。早期示例之一显示了嵌套并行区域的使用,并表明它应该产生 N2 + N 行输出。过程如下:
program helloworld
!$OMP PARALLEL
write(*,*) "Hello"
!$OMP PARALLEL
write(*,*) "Hi"
!$OMP END PARALLEL
!$OMP END PARALLEL
end program helloworldcode
我希望得到 12 个 Hello 和 144 个 His,但实际上我得到了 12 个:
$ ./helloworld.exe
Hello
Hello
Hello
Hi
Hi
Hello
Hello
Hello
Hello
Hello
Hello
Hi
Hi
Hello
Hello
Hi
Hi
Hi
Hi
Hi
Hello
Hi
Hi
Hi
为什么我没有得到预期的 156 行输出?
【问题讨论】:
-
为所有 Fortran 问题使用标签 fortran。您可以为特定于版本的问题添加版本标签(这根本不是特定于 Fortran 版本的问题)。甚至你引用的书也是 F95 而不是 F90...