|
向各位大神求助,我现在想要并行做一些矩阵的计算,发现只要矩阵稍微一大就无法运行了,不知道有人遇到过这种情况吗,该如何解决呢?这个代码很简单,串行完全没问题,而并行的时候,矩阵规模很小时没有问题,规模一大比如现在的2000就无法运行了。
program main
use omp_lib
integer::i,j
integer,parameter::nec0=2000
common/matr/ an(nec0,nec0)
write(6,*) 'hello word!'
!$OMP PARALLEL PRIVATE(i,j)
!$OMP DO
do i=1,nec0
do j=1,nec0
an(i,j)=float(i+j)
enddo
enddo
!$OMP END DO
!$OMP END PARALLEL
open(3,file='an.txt',status='unknown')
do i=1,nec0
write(3,*) (an(i,j),j=1,nec0)
enddo
close(3)
stop
end
|
|