我正在尝试分析MPI/OpenACC Fortran代码。 我在这里找到了一个详细介绍如何使用 MPI 运行 nvprof 的网站。 给出的示例适用于OpenMPI。 但是,我仅限于MPICH,我无法弄清楚等价物。 有人知道它会是什么吗?
我所知,nvprof
示例中唯一的OpenMPI特定部分是使用OMPI_COMM_WORLD_RANK
为每个等级获取唯一的文件名。根据此处的讨论,您可以使用PMI_RANK
或PMI_ID
代替。
在我的系统上,我有以下小程序
program env
implicit none
call system("echo $PMI_RANK")
end program env
我用mpif90 env.f90 -o test
编译,用mpirun -np 2 ./test
运行,得到
0
1
作为输出。所以我认为你可以用-o output.%h.%p.%q{PMI_RANK}
替换-o output.%h.%p.%q{OMPI_COMM_WORLD_RANK}
.
对于 cray-mpt
mpi 库,我相信正确的变量实际上是ALPS_APP_PE
。