主题:openmp并行跟踪调试,说“没有可用于当前位置的源代码”,怎么回事啊?
flosea
[专家分:0] 发布于 2011-11-27 14:23:00
SUBROUTINE SUB_add(ARRAY1)
INCLUDE "omp_lib.h" ! or USE OMP_LIB
REAL ARRAY1(10)
!$OMP PARALLEL do
do i=1,10
ARRAY1(i)= ARRAY1(i)+i
end do
!$OMP END PARALLEL do
END SUBROUTINE SUB_add
SUBROUTINE SUB_min(ARRAY1)
INCLUDE "omp_lib.h" ! or USE OMP_LIB
REAL ARRAY1(10)
!$OMP PARALLEL do
do i=1,10
ARRAY1(i)= ARRAY1(i)+10
end do
!$OMP END PARALLEL do
END SUBROUTINE SUB_min
PROGRAM A5
REAL ARRAY1(10)
ARRAY1=1.0
CALL SUB_add(ARRAY1)
CALL SUB_min(ARRAY1)
print*,ARRAY1
END PROGRAM A5
就这么简单的程序,在“CALL SUB_add(ARRAY1),CALL SUB_min(ARRAY1)”两句前设置断点时,调试的时候就会出现“没有可用于当前位置的源代码”,请指教,怎么回事?因为我想逐行调试。
回复列表 (共9个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-11-27 15:00:00
可能是有并行前处理的事儿吧。
把断点设置到do i=1,10那儿试试?
板凳
flosea [专家分:0] 发布于 2011-11-28 13:25:00
OpenMP是多线程并行,当出现找不到适合当前位置的源代码时,切换线程,总有线程有合适的源代码的。因为遇到end parallel后派生进程已经终止了。
3 楼
cgl_lgs [专家分:21040] 发布于 2011-11-28 15:08:00
你也在Fortran Space群里啊:)我是好小爱新:)那天回完你后掉线了:)
4 楼
yeg001 [专家分:14390] 发布于 2011-11-28 23:14:00
cgl_lgs兄, 你进了雪球大的群啊?
5 楼
cgl_lgs [专家分:21040] 发布于 2011-11-29 14:33:00
嗯那,看你们进了才想想是不是也进去玩儿玩儿混个脸熟神马的~~~结果进去时发现你们全跑了~~~~
6 楼
yeg001 [专家分:14390] 发布于 2011-11-29 17:01:00
勋哥好像被不知道的某人踢了, 我是原本是想退出一个CUDA群错手点了退出fotran群, 最后觉得退出就算了.
7 楼
cgl_lgs [专家分:21040] 发布于 2011-11-29 17:47:00
董兄据他本人说是不做Fortran开发了,所以退出了所有跟Fortran有关的群。
8 楼
dongyuanxun [专家分:7180] 发布于 2011-11-30 11:23:00
额躺着也中枪
9 楼
flosea [专家分:0] 发布于 2011-12-01 22:47:00
呵呵,谢谢!
我来回复