我有一个非常基本的 Fortran 程序来尝试学习 MPI。我正在使用 Visual Studio 2019、MPICH2 和 Intel oneAPI Toolkit 编译此脚本。程序如下
program hello
implicit none
include 'mpif.h'
integer :: rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print *, "node", rank, "says Hello World!"
call MPI_BARRIER(MPI_COMM_WORLD, ierror)
call MPI_FINALIZE(ierror)
! here
end program hello
该程序按预期编译和运行,产生输出
PS C:\Users\gf715\Documents\VS_testing\test\Debug> mpiexec -n 4 test.exe
node 1 says Hello World
node 2 says Hello World
node 3 says Hello World
node 0 says Hello World
但是,如果我stop
在结束程序之前添加一条语句(我写了“这里”注释),代码仍然可以编译,但现在运行它时不会产生任何输出:
PS C:\Users\gf715\Documents\VS_testing\test\Debug> mpiexec -n 4 test.exe
PS C:\Users\gf715\Documents\VS_testing\test\Debug>
我不记得在使用 Intel oneAPI 工具包之前遇到过这个问题(我曾经使用相同的设置,但使用 Parallel Studio XE Cluster Edition,当我的许可证到期时我被迫更改)。为什么stop
阻止任何输出?