问:编译vasp出现“undefinedreference to XXX”链接错误如何解决?
答:这个应该是配置vasp的库有问题,查找fftw,mpi,mkl之类的库路径是否正确,makefile里面的库名字是否正常,例如openmpi库,但编译时候却是使用mpich库,库不匹配。
问:vasp编译成功,但运行时报forrtl:severe (174): SIGSEGV错误?
答:有可能因为Makefile里面指定的libmkl_blacs_intelmpi_lp64 #这里指定的是intelmpi,而提交作业的时候,使用的是openmpi。
问:运行vasp报mpirunnoticed that process rank 9 with PID 19320 on node localhost exited on signal11 (Segmentation fault)错误?
答:编译的时候,应该没有添加 -heap-arrays 64 选项。如果不想重新编译可以尝试使用ulimit -s unlimited 命令,如果不好用,那么只能重新编译。
问:编译vasp时候提示Cannotopen include file 'fftw3.f'?
答:将fftw3.f 文件拷贝到vasp编译目录下面。
问:使用ldd查看vasp文件时候,库文件明明存在,但就是显示无法找到?
答:有可能存在的那个库文件是32位,因为本机是64位,所以检测的时候无法通过,就告诉你找不到,使用file文件查看那个库文件,看看是否位数不匹配。
问:编译vasp时候,显示很多flag错误,参数没有找到?
答:有可能是因为你使用的编译器有问题,例如mpif90是基于gfortran的,而并非是intel的,所以安装openmpi或者mpich2版本的时候,编译器需要指定编译器,configure生成makefile时指定CC=icc CXX=icpc FC=ifort就可以了。
问:编译vaspcuda版本,提示forrtl:severe (174): SIGSEGV, segmentation fault occurred,CUDAError in cuda_fft.cu, line 323: invalid device function
Failed to execute cuda_fftwav!错误?
答:这个应该是GPU的显卡显存太低,最少需要5GB的显存,才可通过。但这个不是硬性条件,修改makefile.include 编译参数
GENCODE_ARCH 这一行的30改成20 35改成20
改成最小的,然后向后慢慢提升,看看最终哪个最合适,就可以了。可以通过nvcc --help查看--gpu-architecture参数。
问:编译vasp报electron_all.F(38):error #7002: Error in opening the compiled module file. Check INCLUDEpaths. USE choleski错误?
答:报这个错误,是因为include库文件路径错误。手动添加。
编辑makefile.include文件
BLACS =-lmkl_blacs_openmpi_lp64 修改成
BLACS =-L$(MKL_PATH) -lmkl_blacs_openmpi_lp64