MPI只是一个库。编译器不做任何与MPI相关的特殊操作。
这个问题与这里的问题非常相似,只是我想知道人们在使用mpif90编译器和在代码中使用MPI时使用了什么标志。
mpif90
、mpifort
或类似的命令只是调用带有一些附加标志的普通编译器。你必须知道它是哪个编译器。如果它是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有专门的调试器,但它们是外部程序,而不仅仅是编译器标志。