我的代码如下
program main
2
3 implicit none
4 include 'omp_lib.h'
5
6 Real*8 time_start,time_end
7 integer i,j
8
9 call cpu_time(time_start)
10 ! $OMP PARALLEL
11 write(*,*)OMP_GET_THREAD_NUM(),'hello'
12 ! $OMP END PARALLEL
13 call cpu_time(time_end)
14 write(*,*) OMP_GET_NUM_THREADS(),OMP_GET_THREAD_NUM()
15 write(*,*)'Length of time is ', time_end-time_start
16
17 end
线程数我是通过export OMP_NUM_THREADS=8来设置的
编译的时候使用的命令是:pgf90 -openmp test.f90 -o test
运行:./test
得到的结果是
0 hello
1 0
Length of time is 0.000000000000000E+000
应该有八个线程,正常应该输出八个hello吧,但是实际上好像只有一个线程,所以只能输出一个hello,有没有大神可以帮我找一下问题所在,感激不尽,我是openmp初学者,今天才开始学的。
我用的是Fortran语言编程,此外我用ifort编译器也试过了,结果是一样的