并行写入/读取文件

时间:2014-12-24 19:09:20

标签: io parallel-processing fortran openmp gfortran

从简单的在线查看,我找不到一种方法,可以使用OpenMP并行地在Fortran 90中读取或写入文件。我想知道是否有可能做类似

的事情
!$OMP PARALLEL
do i=1,Nx
do j=1,Ny
do k=1,Nz
read(1,*) B(i,j,k)
enddo
enddo
enddo
!$OMP END PARALLEL

!$OMP PARALLEL
do i=1,Nx
do j=1,Ny
do k=1,Nz
write(1,*) B(i,j,k)
enddo
enddo
enddo
!$OMP END PARALLEL

如果有其他条款可以确保正确完成此操作。我想可能有一种简单的方法来执行此操作,但写入似乎不那么明显。感谢您提供的所有帮助/建议!

1 个答案:

答案 0 :(得分:0)

由于您正在进行格式化的io,请考虑线程N如何计算出要读/写的文件中的正确偏移量。

此外,由于问题被标记为gfortran,因此在gfortran中有一个单位互斥量,它在io语句的持续时间内保留。