回 帖 发 新 帖 刷新版面

主题:fortran problem!!! 求高手指教啊!!!

最近编了个fortran 程序,单线程运行没问题。加 openmp 并行之后,程序就不正常中断了!设定程序迭代20次,有时能迭代10次,有时能迭代一两次!!! 求高手指教。 我把 栈大小 和 master thread 内存都设得足够大的。

回复列表 (共4个回复)

沙发

问题再具体些:当不用 
       open(20,file="G0BAR_SEARCH.dat")
       do imatu=1,Matsu
      write(20,"(I5,4D20.10)")imatu,re_gfimag(1,1,imatu), 
     $                                 gfimag(1,1,imatu)
       end do
       close(20)
 这段程序时,整个迭代能完成。只要遇见这样的输出程序就可能在某次迭代处中断!!

板凳

Open和Close都在并行体内么?如果是,那必然不可以。

3 楼

OPEN 和 CLOSE 部分是 串行的,不在并行体内。呵呵

4 楼

读写文件如果用并行也不可以,除非是用记录方式。

我来回复

您尚未登录,请登录后再回复。点此登录或注册