Compilation 如何确定mpif90代码编译挂起的原因?
我试图编译一个用Fortran()编写的并行TDDFT代码,但编译挂起 我使用openmpi(2.0.0)编译,它是用英特尔编译器(16.0.3 20160415)构建的 命令make挂起在:Compilation 如何确定mpif90代码编译挂起的原因?,compilation,fortran,mpi,openmpi,intel-fortran,Compilation,Fortran,Mpi,Openmpi,Intel Fortran,我试图编译一个用Fortran()编写的并行TDDFT代码,但编译挂起 我使用openmpi(2.0.0)编译,它是用英特尔编译器(16.0.3 20160415)构建的 命令make挂起在: mpif90 -O3 -check bounds -free -I ../external_libs/bpdn -I ../external_libs/dftd3 -I ../external_libs/spglib-1.9.9/src/ -I /home/c/cor22/scratch/bin/src/
mpif90 -O3 -check bounds -free -I ../external_libs/bpdn -I ../external_libs/dftd3 -I ../external_libs/spglib-1.9.9/src/ -I /home/c/cor22/scratch/bin/src/octopus/../libxc-5.0.0//include -I/usr/include -I/home/c/cor22/scratch/bin/src/octopus/../libvdwxc-0.4.0//include -c -o td/td.lo td/td_oct.f90
我以前从未见过编译器像这样挂起,我想知道是否有人知道问题可能是什么,或者如何确定是什么原因造成的
make进程成功地完成了大部分源代码,编译起来非常愉快。您是否尝试过在未启用优化和调试的情况下编译它?希望这能带来一些见解。检查是否发生内存交换。FWIW,您正在使用过时的Open MPI(现在是
4.0.5
)和intel
(现在是2020
)。请尝试隔离代码中有问题的部分。尝试删除模块的前半部分。它编译吗?尝试删除模块的其他PAR。它编译吗?“英特尔Fortran支持论坛”通常响应速度很快,您甚至可能有资格获得卓越支持,尽管可能没有,因为版本16已经很旧了。尝试获取一个更新的编译器。尝试时未进行优化,并进行调试,但结果相同。将使用更新的编译器/mpi组合。我只是好奇,因为我以前从未见过这种情况发生。