x*******a 发帖数: 11067 | 1 想法很简单,就是写一个程序用所有机器上的processor来跑同一个模型。模型的输入文
件不一样,结果也就不一样。不同的输入文件在不同的文件夹下面。
我的程序如下(是Fortran的),第一次跑了没问题,但是再跑一次,就出现了这样的错
误信息:
"The process cannot access the file because it is being used by another
process".
请问这个问题是怎么产生的,怎么解决呢?
谢谢!
!--------------------------------------------
program ompHelloWorld
use omp_lib
integer NTHREADS, TID,
!$OMP PARALLEL PRIVATE(TID), SHARED(NTHREADS)
TID = OMP_GET_THREAD_NUM()
PRINT *, 'Hello World from thread = ', TID
CALL RUNMODEL(TID)
!$OMP END PARALLEL
end program ompHelloWorld
!Run a model
SUBROUTINE RUNMODEL(ID)
INTEGER ID
CHARACTER*200 CPATH
write(*,*) 'Run model using thread#',ID
! Change current path
WRITE(CPATH,100) ID+1
100 FORMAT(I2)
CPATH='c:\share\test'//ADJUSTL(CPATH)
WRITE(*,*) TRIM(CPATH)
CALL CHDIR(CPATH)
WRITE(*,*) 'The current path is ', TRIM(CPATH)
CALL SYSTEM('MYMODEL.EXE >lst')
END SUBROUTINE RUNMODEL | t****t 发帖数: 6806 | 2 我不懂fortran, 但是第一, 这种小事没必要搞什么openmp这么复杂, 你不就是要一次
开十七八个进程吗? shell就可以搞定了, 看你的程序本来就是shell的包装, 可是这包
装有什么用呢?
第二, 同时跑十七八个进程, 输入可以是同一个文件(但是注意不要exclusive open),
输出如果是同一个文件那就是自找麻烦. 看你的程序, 调用mymodel.exe的时候命令行
完全没有变化, 多半就是麻烦的根源了吧
【在 x*******a 的大作中提到】 : 想法很简单,就是写一个程序用所有机器上的processor来跑同一个模型。模型的输入文 : 件不一样,结果也就不一样。不同的输入文件在不同的文件夹下面。 : 我的程序如下(是Fortran的),第一次跑了没问题,但是再跑一次,就出现了这样的错 : 误信息: : "The process cannot access the file because it is being used by another : process". : 请问这个问题是怎么产生的,怎么解决呢? : 谢谢! : !-------------------------------------------- : program ompHelloWorld
| x*******a 发帖数: 11067 | 3 这是一个简单的练习.我现在只是想试试,后面还有文件的读写和把数据收集起来作处理
。可以说是一个Monte carlo的一部分。
,
【在 t****t 的大作中提到】 : 我不懂fortran, 但是第一, 这种小事没必要搞什么openmp这么复杂, 你不就是要一次 : 开十七八个进程吗? shell就可以搞定了, 看你的程序本来就是shell的包装, 可是这包 : 装有什么用呢? : 第二, 同时跑十七八个进程, 输入可以是同一个文件(但是注意不要exclusive open), : 输出如果是同一个文件那就是自找麻烦. 看你的程序, 调用mymodel.exe的时候命令行 : 完全没有变化, 多半就是麻烦的根源了吧
| O*******d 发帖数: 20343 | 4 为什么输入文件要用OpenMP?。 输入文件的瓶颈不在CPU,而在硬件IO。 | a****l 发帖数: 8211 | 5 yes, and actually it would be a very bad idea to open one file from multiple
threads.
【在 O*******d 的大作中提到】 : 为什么输入文件要用OpenMP?。 输入文件的瓶颈不在CPU,而在硬件IO。
| x*******a 发帖数: 11067 | 6 没有OPEN同一个文件啊。我用了CD到不同的文件夹下,是同一个文件名但是不同的文件
夹。
multiple
【在 a****l 的大作中提到】 : yes, and actually it would be a very bad idea to open one file from multiple : threads.
|
|