您为 mpif90 编译器 debugger/compiler 设置了哪些标志来捕获错误代码?

What flags do you set for your mpif90 compiler debugger/compiler to catch faulty code?

这个问题与 here 提出的问题非常相似,除了我想知道人们在使用 mpif90 编译器并在代码中使用 MPI 时使用什么标志。

MPI 只是一个图书馆。编译器不会做任何与 MPI 相关的特殊事情。

mpif90mpifort 或类似的命令只是调用带有一些附加标志的普通编译器。您必须知道它是哪个编译器。如果是 gfortran,请使用 gfortran 的标志。如果是英特尔,则使用英特尔标志。

使用mpif90 --show找出底层编译器。对于我的笔记本电脑,当前设置显示

gfortran -I/usr/lib/hpc/gnu7/mpi/openmpi/4.0.5/include -pthread -I/usr/lib/hpc/gnu7/mpi/openmpi/4.0.5/lib64 -L/usr/lib/hpc/gnu7/mpi/openmpi/4.0.5/lib64 -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi

所以我的编译器是 gfortran。

无论是否使用 MPI,我都使用完全相同的调试标志。

有专门的 MPI 调试器,但那些是外部程序,而不仅仅是编译器标志。