0
我的示例代碼FORTRAN是這樣的:MPI設計循環代碼
call MPI_INIT(ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, myid, ierr)
call MPI_COMM_SIZE(MPI_COMM_WORLD, ntasks, ierr)
if (myid==0) then
10 serial_subroutine1
end if
parallel_function (myid, ntasks)
if (myid==0) then
serial_subroutine2
if (some requirements meet) go to 10
end if
call MPI_FINALIZE(IERR)
end
這似乎是一些在serial_subroutine1輸出晚於parallel_function輸出。程序不會在serial_subroutine2中輸出任何內容,就像停止一樣。
我想知道是什麼原因導致這個問題,以及如何解決這個問題? MPI應該如何設計這種代碼?
你的回答將不勝感激!
謝謝!
你能或許可以將例如有效的Fortran?我可以推斷出可能通過你'10 serial_subroutine1'的意思,但'去10'以後(跳躍_into_的構建是否?)... – francescalus
我知道,跳進一個if結構是無效的。如果我想在MPI中實現這個示例代碼,該怎麼做? –