我最近遇到了一种奇怪的行为。如果我在我的电脑上运行以下代码(使用最新版本的cygwin,Open MPI版本1.8.6),我会发现内存使用呈线性增长,很快就会超过我的电脑承受范围。
program memoryTest
use mpi
implicit none
integer :: ierror,errorStatus ! error codes
integer :: my_rank ! rank of process
integer :: p ! number of processes
integer :: i,a,b
call MPI_Init(ierror)
call MPI_Comm_rank(MPI_COMM_WORLD, my_rank, ierror)
call MPI_Comm_size(MPI_COMM_WORLD, p, ierror)
b=0
do i=1,10000000
a=1*my_rank
call MPI_REDUCE(a,b,1,MPI_INTEGER,MPI_MAX,0,MPI_COMM_WORLD,errorStatus)
end do
call MPI_Finalize(ierror)
stop
end program memoryTest
有什么想法问题可能是什么?在我这个初学者的眼里,这段代码看起来很好。编译行为:
mpif90 -O2 -o memoryTest.exe memoryTest.f90