0

MPI で実行するように fortran でプログラムを更新していて、ランクが正しく表示されないという問題が発生しました。このサブルーチンの最初に呼び出すMPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr)と、この時点までの適切なランクが返されます。

  DO IY=2,NY+1
  DO IX=2,NX+1
   D(IX,IY)=(h_roms(IX,IY)+zeta(IX,IY))*maskr(IX,IY)
   call mpi_barrier(mpi_comm_world,ierr)      
   write(out,12) rank,ix,iy
12 format('disappearing?',i3,'ix:',i3,'iy',i3)           
  ENDDO       
  ENDDO

NY と NX はそれぞれ 124,84 で、ランクは iy が 125 になるまで正しく出力され、ix は 3 になります。その後は* **としてのみ出力されます。IT は引き続きすべてを 2 回 (2 つのプロセッサで実行して) 出力しますが、ランクが有効でないか、エラーが発生します。do ループの後に MPI_COMM_RANK を呼び出してみましたが、まだ何もありません。どんなアイデアでも大歓迎です。

4

1 に答える 1