由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - OpenMP的问题-The process cannot access the file because it is being used by another process
相关主题
openMP or boost::thread (pthread) for multithreading ?Re: 一道count frequency of all words的面试题 (转载)
请教Fortran编程高手并问一下OpenMP的问题How are parameters passed between ANSI C subroutines?
如何查看一个程序/进程使用了哪些cpu?QuickBasic grammer question
用root跑程序更快请看看这个Perl random sampling code 有什么问题,
[合集] Intel 9编译器在vc 6.0的环境里编译openmp的问题如何在fortran中定义一个动态的数组?
谁给推荐本parallel programming的入门教材问个fortran的问题
请大牛们帮忙看一段并行c++代码的效率问题问个有关Perl Subroutine 转换到Module的问题
一个OpenMP问题求教setjmp() and longjmp()
相关话题的讨论汇总
话题: cpath话题: tid话题: process话题: omp话题: write
进入Programming版参与讨论
1 (共1页)
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.

1 (共1页)
进入Programming版参与讨论
相关主题
setjmp() and longjmp()[合集] Intel 9编译器在vc 6.0的环境里编译openmp的问题
并行程序能做到不用专门写么?谁给推荐本parallel programming的入门教材
MPI 编程可以再 (转载)请大牛们帮忙看一段并行c++代码的效率问题
FORTRAN 90 菜鸟问题一个OpenMP问题求教
openMP or boost::thread (pthread) for multithreading ?Re: 一道count frequency of all words的面试题 (转载)
请教Fortran编程高手并问一下OpenMP的问题How are parameters passed between ANSI C subroutines?
如何查看一个程序/进程使用了哪些cpu?QuickBasic grammer question
用root跑程序更快请看看这个Perl random sampling code 有什么问题,
相关话题的讨论汇总
话题: cpath话题: tid话题: process话题: omp话题: write